Beim GCC muss man da ein "L" machen, vielleicht hilfts auch dem Assembler
CLOCK/(BAUD*16 L )-1
Druckbare Version
Beim GCC muss man da ein "L" machen, vielleicht hilfts auch dem Assembler
CLOCK/(BAUD*16 L )-1
ne, leider, da beschwert sich AVR Studio
Hi,
das mit dem Datensalat kenn ich!!
Probier mal:
-Auf Connect klicken
-Und dann den µC resetten!
Damit Hterm von Anfang an deine Daten empfängt! Weil manchmal passiert es wenn man auf Connect klickt das Programm mittendrin im Ablauf ist und Hterm deine Bytes faalsch ausliest!
Gruß Michi
ne, hat leider nicht funktioniert. Habe zwar keinen Resettaster aber ich habe mal die Spannung weggenommen und erst wieder aufgelegt, als ich auf connect geklickt habe.
Werde erstmal den Code so umschreiben, dass er nach jedem Senden ca. 1 sek Pause macht, damit man jeden Zyklus besser unterscheiden kann. Mit 9600Baud ist HTerm nur noch am scrollen ;)
kann ja gerne mal posten, was mir HTerm anzeigt, aber das wird wohl auch nicht weiterhelfen.
NACHTRAG: Habe jetzt erstmal einen 1 Sek. Sendetakt eingestellt und es werden tatsächlich 7 Zeichen gesendet.
ASCI ÔÙ.WI¨ø
HEX D4 D9 2E 57 49 A8 F8
Decimal 212 217 046 087 073 168 248
Binär 11010100 11011001 00101110 01010111 01001001 10101000 11111000
theoretisch müßte bei ASCI "TEST!" stehen. Die gesendeten "10" "13" dienen wohl der Flusssteuerung.
Vielleicht habt ihr ja einen Tipp.
Das ist ziemlich deutlich ein Baudratenproblem. Welche Zahl stellt der Assembler nun in das Register ?
Und trotzdem die Frage, auch wenn's nervt: Oszillator/Fuses sind ok ?
ahhh, wieder der Zufall der weitergeholfen hat. Habe ja das Tutorial von Mikrocontroller.net genommen und auch so die Einstellungen bei HTerm vorgenommen. Habe dann im Assembler mal nachgezählt und da 7 Zeichen gesendet werden habe ich mal in HTerm Data auf 7 anstatt auf 8 gesetzt und es funktioniert. Nur weiss ich nicht genau warum, wenn ich noch paar Zeichen einfüge es immernoch nur mit Data 7 funktioniert. Wahrscheinlich ist etwas im Code falsch, dass er nur 7 Datenbits sendet. Aber ich bin froh das es jetzt erstmal soweit funktioniert. Dann kann es ja nicht an der Schaltung liegen und ich kann sie mal schön auf Platine ätzen, damit ich wieder mehr Platz auf meiner Steckplatine habe.
Is zwar schon ein weilchen her, aber habs frustriert gelassen, da ich einfach nicht dahinter kam (zusätzlich hatte ich sowieso recht viel um die ohren). Hab aber jetzt gerade noch einmal mit Multimeter gemessen:
Pin 2 hat 1,6V
Pin 6 hat 0,8V
Weiß wer wo es da hakt??
Grüße Andreas
Hallo
Hatte ein ähnliches Problem beim STK500 mit dem dort ausgetauschten MAX202. Es lässt auf ein Problem mit der Belastung der Ladungspumpen im MAX Chip schließen. Es sollten am MAX die erzeugte Hilfsspannungen nicht zur Versorgung von anderen Schltungsteilen verwendet werden ( was auf dem STK500 leider so ist und mitunter Probleme macht). Offenbar funktioniert das mur mit dem MAX202CSE (aber nur mit 10µF Kondensatoren obwohl das Datenblatt 0,1µF angibt) nicht aber mit dem MAX202ECSE oder dem MAX232xxx . Beim MAX232 gibt es veschieden Typen die einmal 10µF Kondis wollen andere (Suffix A)wollen 0,1µ also ziemlich Verwirrend die MAX Typen.
Teste doch mal den MAX außerhalb der Schaltung und ohne Ansteuerung mit verschiedenen Kondensatoren und miss die Spannungen es sollten ca. -8V und +8V ( auf ein-zwei Volt kommt es nicht so an es müssen aber eine negative und positive Spannung über 5V zu messen sein ) an den Pins (2,6)liegen. Wenns so funktioniert muß irgendwo in Deiner Schaltung eine unzulässige Belastung des MAX Chips vorliegen.
Also eigentlich ist der MAX232 total unbelastet - er wurde auf einer eigenen Platine mit Stecker aufgebaut, da sind eigentlich nur die Kondensatoren drauf!
Hallo Lektor,
ich habe das Problem auch schon gehabt und die Lösung ist eigentlich ganz simpel.
Beim interne RC-Oszillator wird bei einem Reset, das OSCCAL Byte für 1 MHz geladen, egal was du eingestellt hast.
Damit ist bei 8 MHz der Oszillator für die USART zu ungenau.
Du mußt also in deinem Programm als erstes das OSCCAL Byte für 8 MHZ ändern.
Laut Datenblatt bei 5V -> OSCCAL=$A9.