Autor
|
Thema: Taster als Schalter via AVR (Gelesen 152113 mal)
|
PoWl
Dremelfreund

Karma: +0/-0
Offline
Beiträge: 140
Atmel AVR Mikrocontroller
|
Sollte doch kein Problem sein. Entweder du machst es so, dass der PC dem µC bescheid sagt, ab wann er bereit ist daten zu empfangen, oder du sendest halt ein synchronisations-Befehl vom µC zum PC. Der PC wartet dann, bis er das erste mal "sync" empfängt und fängt dann erst an die Daten zu empfangen.
Wozu muss der µC dem PC überhaupt sätndig daten senden? Wenn man manuell einen Taster bedient kann man das ja auch direkt machen. Die Steuerungssoftware muss nur am Anfang einmal den aktuellen Status der Schalter auslesen und wird dann in Zukunft nur noch direkt wenn man einen Taster drückt vom µC informiert.
|
|
|
Gespeichert
|
|
|
|
|
TheSkorpion
Dremelfreund

Karma: +2/-0
Offline
Beiträge: 123

Fachgebiet: Elektronik
|
ich sach nur eins
handshake
die serielle Schnittstelle hat ja nicht ohne Grund mehr als zwei Adern.
|
|
|
Gespeichert
|
|
|
|
PoWl
Dremelfreund

Karma: +0/-0
Offline
Beiträge: 140
Atmel AVR Mikrocontroller
|
naja.. irgendwie overkill wenns auch ganz einfach in soft geht
|
|
|
Gespeichert
|
|
|
|
Fabeulous
Gast
|
Okay also erstmal danke für die Tips. Also im Moment ist es so, dass pro Programmablauf immer der String „BD“ gesendet wird. Wenn jetzt eine Taste gedrückt wird. Also ein neuer Status existiert wird außerdem einmalig der String „NS“ gesendet auf welchen der PC dann reagieren soll indem er die einzelnen Statusse/Staten(Wie ist der Plural von Status? ) der Taster erfragt.
Erst wollte ich es auch so realisieren das der µC nur auf Anfrage sendet.
Komischerweise konnte ich aber dann nie mit dem µC kommunizieren. Das heißt wenn ich bei jedem Programmdurchlauf auf dem µC ein beliebiges Byte vom µC an den PC sende kann ich auch befehle an den µC zurück senden. Sobald ich den µC aber so programmiere das er nur "hört" und nichts sendet empfängt er keine Befehle mehr.
Kann sich da jemand einen Reim drauf machen wieso er das macht? bzw. nicht macht?
Das mit dem Handshake finde ich auch etwas übertrieben vor allem weil ich dann nochmal an der Hardware rumlöten müsste. Und das würde bei meinem Layout auf jeden fall zu Luftverdrahtung führen...
Aber schon mal vielen Dank für die Tips... Hat eigentlich irgendwer hier Interesse daran die Schaltung auch mal aufzubauen? Weil dann könnte derjenige auch mal die Software testen(wenn sie dann soweit ist)?
|
|
« Letzte Änderung: September 28, 2009, 22:27:07 von Fabeulous »
|
Gespeichert
|
|
|
|
PoWl
Dremelfreund

Karma: +0/-0
Offline
Beiträge: 140
Atmel AVR Mikrocontroller
|
Naja dann setze die Tipps die wir dir die letzten Posts gegeben haben erstmal um und dann sehen wir weiter. Der µC muss dem PC nicht permanent bescheid sagen "hallo ääh nur zur info, BD - bin noch da!!! hähähähää".
Bau doch erstmal schritt für schritt ne kommunikation zu deinem µC vom PC aus auf. Ganz einfach nochmal von 0 anfangen und schrittweise das Programm erweitern. Wenns schon von Anfang an nicht läuft muss die Ursache ja irgendwas triviales sein. Ansonsten kann ich mir da jetzt auch keinen Reim drauf machen.
|
|
|
Gespeichert
|
|
|
|
|
Fabeulous
Gast
|
Ja danke! Es ist ja nicht so als hätte ich das nicht schon alles versucht.
Also mal rein nach dem ausschlussverfahren:
Hardwareseitig funktioniert das Senden und das Empfangen. Denn das Senden an den µC und das Emfpngen vom µC hat beides schon geklappt. --> Also kann es an der Hardware nicht liegen
Okay dann hätte ich Softwaremäßig was falsch machen können. Deswegen habe ich mir folgenden Mini Code gebastelt:
'004.BAS: UART-Empfänger ohne Interrupt 'Hardware: MAX232 an PD0/PD1, Nullmodemkabel zum PC '--------------------------------------------------- $regfile = "m8def.dat" $crystal = 8000000 $Baud = 9600 'Baudrate der UART: 9600 Baud
Dim i As Byte
Do If USR.RXC = 1 Then 'Wenn Byte empfangen... i = UDR 'Byte aus UART auslesen Select Case i Case "H" Print "Hallo AVR" Case "h" Print "hallo avr" Case Else Print "Unbekannter Befehl" End Select End If Loop End
Funktioniert leider nicht. Und ab hier weis ich nicht weiter. Am AVR kann es auch nicht liegen. Habe bereits mehrere ausprobiert. Noch jemand eine Idee? Trotzdem schon mal vielen Dank!
EDIT: Okay hat sich erledigt! Es lag daran das ich vergessen habe den MAX232 an GND anzuschließen! Nun läuft es perfekt! Trotzdem Danke!
P.S.: Hat nun denn nun jemand Interesse an der Software?
|
|
« Letzte Änderung: September 29, 2009, 18:31:29 von Fabeulous »
|
Gespeichert
|
|
|
|
mak
Modder der Apokalypse

Karma: +3/-0
Offline
Geschlecht: 
Beiträge: 1147

M/A/K
|
Hat nun denn nun jemand Interesse an der Software?
Da kannst du dir sicher sein, das kann man immer brauchen.
|
|
|
Gespeichert
|
M/A/K hat gesprochen! Athlon X2 6400 + Xigmatek Achilles / 2x 2 GB RAM / 64 GB SSD / ATI 5850 / C433 / Windows-Rating: 6.3
|
|
|
Fabeulous
Gast
|
So ich habe die letzten Tage dann mal an dem Programm gebastelt. Es ist soweit fertig obwohl es nicht so ganz Funktionsreich ist ich es erst angekündigt hatte. Ich denke das kann man im Laufe der Zeit immer noch integrieren.
Aktuell sind folgende Funktionen integriert: - Balontips werden angezeigt, wenn ein Verbraucher geschaltet wird(Abschaltbar) - Den Verbrauchern können Namen zugewisen werden - Für die Schaltaktionen der Verbraucher können globale Hotkeys definiert werden (Ist meiner Meinung nach besonders praktisch wenn man eine G15 oder ähnliches hat. Dann kann man die Verbraucher direkt über die G-Tasten schalten) - Die software kann automatisch gestartet werden - ...und sich auf wunsch auch automatisch verbinden, sodass man direkt nach dem Systemstart darauf zugreifen kann - Das Programm kann in den Systemtray minimiert werden
Ich bin nicht unbedingt der begnadeste Programmierer, deswegen gehe ich davon aus das sich auch noch der eine oder andere Fehler im Programm versteckt. Falls jemand das Programm testet, und dabei irgendwelche Fehler entdeckt, sagt mir bitte eben bescheid.
MFG Fabeulous
Anhang: http://fabeulousde.h198298.ser...dingfaq/FRS.exe
Edit: Sry hab den Link aktualisiert
|
|
« Letzte Änderung: Januar 23, 2010, 15:38:33 von Fabeulous »
|
Gespeichert
|
|
|
|
|
Fabeulous
Gast
|
So ich wollte nur mal nachfragen ob irgendwer schonmal in das Programm reingeschaut hat? Bzw. die Platine nachgebaut hat... Wie sieht das aus besteht interesse das man das ganze zu einem Tutorial aufpeppt? MFG Fabeulous
|
|
|
Gespeichert
|
|
|
|
|
Crawler
Global Moderator

Karma: +8/-0
Offline
Geschlecht: 
Beiträge: 1547

|
So, dein Programmm habe ich mir mal angesehen. Sieht auch ganz übersichtlich aus. Aber: Das Einstellungsfenster öffnet sich an solch merkwürdigen Positionen, dass man nicht alles vom Fenster sehen kann. Das wäre ja prinzipiell nicht weiter schlimm, es nervt nur, dass man das Einstellungsfenster nicht verschieben kann. Oder ist das systembedingt? Hier unter Win7 64bit gehts jedenfalls nicht. Zu den Optionen im Einstellungsfenster: Neben einigen Schreibfehlern ("balon" statt "Balloon") und hässlichen Apostrophen (Seit wann ist die Pluralform von "key" "key's"?) und unmöglichen Leerzeichen ("Taster Namen", im Deutschen entweder als Genitivform "Namen der Taster" oder als zusammengesetztes Substantiv "Tasternamen", von mir aus auch gerade noch so mit Bindestrich "Taster-Namen") ist mir folgendes aufgefallen: Wieso kann man die serielle Schnittstelle konfigurieren? Klar, der Com-Port muss angegeben weredn, dass dein Programm weiß, über welchen Port es kommunizieren soll. Aber man legt doch im µC-Programm fest, welche Parität, welche Baudrate genutzt werden soll. Warum soll man vom PC-seitigen Programm das einstellen können? Das ist doch nur eine zusätzliche Fehlerquelle. Und dann wundert mich, wie eine Verbindung hergestellt werden kann , wo doch kein Gerät am Port hängt: Die Verbindung sollte nur dann hergestellt werden können, wenn der µC antwortet. Dann sind bei mir die Balloon Tips standardmäßig im Programm deaktiviert, kommen aber trotzdem. Da steht übrigends "Nr. x Eingeschaltet", "eingeschaltet" wird nach wie vor klein geschrieben. Und die Tips kommen auch, wenn kein µC am seriellen Port hängt... Noch eine Sache: Ich kann durchaus verstehen, dass man stolz auf sein Programm ist, Mir ist die "Werbung" aber eindeutig zu groß geraten. Ich denke, ein klassisches Menü tut es auch, wo man unter dem Punkt "Hilfe" ein "Über FRS" unterbringen kann. In diesem Menü könnte man auch die Einstellungen unterbringen, die sind mir im Hauptfenster einfach zu dominant.
|
|
|
Gespeichert
|
Ein Kluger bemerkt alles. Ein Dummer macht über alles seine Bemerkungen. (Heinrich Heine)
|
|
|
TT_Kreischwurst
Modder der Apokalypse

Karma: +9/-0
Offline
Beiträge: 1007

42
|
Win Vista x64 und Win XP x86 gleiches Spiel. Fenster an sich mittig bei allen Auflösungen und Einstellungsfenster zu 90% weg. Unverschiebbar, nur Alt+Strg+Entf hilft.
|
|
|
Gespeichert
|
- - - Auch Dummheit ist eine Gabe Gottes, man sollte sie jedoch nicht missbrauchen! - - - 
|
|
|
|