Hallo,
seit ein paar Tagen kann ich vom AVR zum PC über die serielle Schnittstelle nicht mehr senden. Ich verwende den Mega8 und als Pegelwandler den MAX232. Als ich zum ersten Mal den Print Befehl benutzt habe, hat er auf anhieb funktioniert und ich konnte im Terminalprogramm die vom AVR gesendeten Zeichen empfangen. Als ich es ein weiteres Mal versuchen wollte habe ich es nicht mehr geschafft. In Bascom habe ich im Menü alles nach der Anleitung von www.myavr.de (habe das sisy myavr Board) konfiguriert.
Mein Code sah bei beiden Versuchen wie folgt aus:
Ich habe keine Einstellungen diesbezüglich verändert. Ich habe es auch schon mit anderen PCs versucht.Code:$regfile = "m8def.dat" $crystal = 3686400 $baud = 9600 Do Print "12" Loop end
Kann ich irgendwie überprüfen (an den Pins?) ob der AVR überhaupt die Zeichen sendet und ob der Max232 seine Arbeit auch richtig tut? Ich wüsste zwar nicht wieso er aufeinmal nicht mehr funktionieren sollte, aber ich kann mir fast nichts anderes mehr vorstellen.
Ich habe gleich noch eine zweite Frage, die vielleicht nicht ganz zur Überschrift passt, allerdings möchte ich auch nicht noch einen Thread eröffnen. Der Hintergrund weshalb ich überhaupt etwas vom AVR zum PC senden möchte ist folgender:
Ich habe ein Programm zum auswerten eines CNY70 geschrieben. Das Programm soll die Impulse (ein Impuls pro Umdrehung) pro Sekunde messen und das ganze dann in Umdrehungen/Minute umrechnen. Also eine Drehzahlmessung. Weil ich noch kein LCD habe um die Drehzahl auszugeben, und das Programm richtig zu testen, dachte ich mir, ich schicke den Wert einfach an den PC.
Vielleicht kann von Euch mal jemand kurz den Code überfliegen ob das so theoretisch überhaupt funktionieren kann.
Im Simulator habe ich es nicht geschafft den Int0 zu beeinflussen, so dass ich das ganze Programm im Simulator testen könnte.Code:$regfile = "m8def.dat" $crystal = 3686400 Dim Zaehlerstand As Byte Dim A As Integer Dim Drehzahl As Integer Const Timervorgabe = 61936 Config Timer1 = Timer , Prescale = 1024 On Timer1 Timer Timer1 = Timervorgabe Enable Timer1 Enable Interrupts Do Drehzahl = A * 60 Print "Drehzahl=" ; Drehzahl Loop End Timer: Timer1 = Timervorgabe Zaehlerstand = Zaehlerstand + 1 A = Zaehlerstand Zaehlerstand = 0 Return
Ich Danke Euch jetzt schon mal
Florian







					
					
					
						
Zitieren

Lesezeichen