Hallo zusammen! Habe einen Mikrocontroller auf dem STK500 programmiert und auch getestet. Jetzt wollte ich eine Platine basteln, doch ich komm nicht ganz weiter. Im ersten Schritt wollte ich eine einfache Stringausgabe realisieren. Ist der Controller auf dem STK500, erfolgt die Übertragung fehlerfrei. Setze ich den Mikrocontroller auf meine Platine kommt der String 3mal halb und dann beim 4.mal ganz an. Hat einer von Euch schon mal so ein Problem gehabt? Und wie kann ich es lösen? Gruß Floyd
Hallo, laß mich raten: Baudrate etwas daneben, weil auf dem STK mit Quarz und auf der Platine mit internem Oszi oder so? Pegelwandler mit MAX232? Spannungen stimmen? Ansonsten Schaltplan und Programm posten, dieses Forum zerstört offenbar Glaskugeln... ;)) Gruß aus Berlin Michael
Als Taktgeber habe ich schon beides ausprobiert: Einen externen 8Mhz Quarz sowie den internen RC. Die Quelle war auf der Platine die gleiche, wie auf dem STK. Als Spannungswandler habe ich einen HIN202 - den Max gab es zu diesem Zeitpunkt nicht mehr... Hab die Spannungen auch mit einem Multimeter durchgemessen; die sind ok. Hab mir die Übertragung noch mal genauer angesehen und festgestellt, dass der String nicht immer nach dem gleichen Muster im Terminal erscheint. Es soll aus Testzwecken nur "Hallo" ausgegeben werden. Das Resultat hat folgendes Aussehen "Ha Ha Ha Ha Hallo Hallo Ha Ha Ha Hallo Hallo...". Ich lass die Ausgabe in einer Endlosschleife laufen. Demnach kommt der String in unregelmäßigen Abständen sogar vollständig an. Der Schaltplan liegt leider auf einem anderen Rechner. Werde ihn morgen mal posten. Freue mich aber selbstverständlich über weitere Anregungen. Wünsche Euch einen schönen Abend Floyd
Poste mal Deine Sende-Routine. Vielleicht sendest Du zu schnell ohne zu warten ( while ( ! ( UCSR0A & (1<<UDRE0)) ); ). Dann wird der letzte Sendevorgang nicht ordentlich beendet, sondern vom nächsten ersetzt. Das bedeutet, dass der nächste Vorgang den vorigen überhohlt. Gruß, Thomas http://www.naventics.net
Guten Morgen Nachdem ich das Posting gelesen habe, dachte ich schon "Ja, dass wird es sein", doch ein Blick in meinen Quellcode hat ergeben, dass ich diese while-Schleife schon eingebunden hatte. Habe den Fehler nach einer nahezu unendlichen Anzahl von Versuchen ermitteln können. Es lag am Sockel! Da ich keinen 40poligen zur Verfügung hatte, habe mir einen aus zwei niederpoligen zusammengebastelt. Leider sind durch den Verlust der Stege keine optimalen Pinausrichtungen möglich gewesen, so dass es zu internen Spannungen gekommen ist -> nicht alle Pins waren permanent verbunden. Das Resultat habt Ihr ja oben gesehen. Danke den fleißigen Lesern und Helfern. Habt einen schönen Donnerstag. Floyd
>Habt einen schönen Donnerstag
Heute ist Mittwoch...
Schönes Wochenende!
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.