Hallo, bin gerade am xperimentieren mit einem ATMega128 und habe volgendes Problem: Wen ich von PC aus ein Signal an dem atmega sende schein es so als würde der nichts empfangen! im Dateianhang sind die funktionen. in der main stehz z.b. int main(void){ usart_init1(9600, 8, 'N', 1); while(1){ if(usart_rxstat1()==TRUE){ x=usart_getc1(); usart_putc1(x); } else{ // usart_write1("Hallo das ist ein test! "); } } } beim senden usart_write1 wen ich sie aktieviere kommt auch das an was da Steht. Der Com anschluss ist OK und die Verkabelung mit dem MAX323 stimmt auch. Komme einfach nicht weiter, vielcht könnt Ihr mir ja weiter helfen bin für jeden Tip dankbar.
Wenn du ein Zeichen empfangen hast, sendest du es zurück. Wenn du allerdings kein Zeichen empfangen hast, sendest du dauernd einen ganzen String. Da geht das einzelne Zeichen möglicherweise unter... Du solltest vielleicht eine LED einschalten (, ausschalten oder umschalten), wenn du ein Byte empfangen hast. Den Text solltest du nur ein Mal (vor der while-Schleife) ausgeben.
Hallo, // usart_write1("Hallo das ist ein test! "); ^^deaktiviert, wen ich jetzt z.b. "a" sende müste ich auch ein "a" zurück bekommen bzw irgendwas da pasiert aber nix!
>^^deaktiviert, übersehen. Weisst du denn, ob der Controller überhaupt > x=usart_getc1(); > usart_putc1(x); abarbeitet?
// usart_write1("Hallo das ist ein test! "); ^^aktiviere, sendet er mir das auch! spanung 5V hat er.
Da springt er grundsätzlich rein, wenn die Bedingung nicht erfüllt ist. Pack das mal in den oberen Teil (nicht-else-Teil), und lass das usrat_putc1(x) weg.
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.