Hallo habe ein problem mit dem avr-studio beim simulieren der uart. beim senden von daten wird nach dem ende der sendung kein interrupt ausgelöst. hatte schon jemand solch ein problem?
Werden beide nicht ausgelöst? Für UDRE hast Du ja einen Interrupt-Handler (SIG_UART_DATA) geschrieben und auch das UDRIE Bit gesetzt. Für SIG_UART_TRANS ebenfalls (TXCIE)... Vielleicht liegts auch nur am Simulator...
Hallo Jack ich versuche das gleiche gerade mit einem Atmega 128 Hast Du auch noch irgendwelche Header oder C Dateien aus der lib mit eingebunden? Funktioniert dies programm auch so ähnlich mit nem atmega 128? Danke
@Hirsch es werden keine zusätzlichen dateien eingebunden auser das was im code angegeben ist. über den atmega128 kann ich nichts sagen. es funktioniert auch alles sauber, nur nach dem letzten senden der daten müsste ein interrupt durch "SIG_UART_TRANS" ausgelöst werden. dieser wird aber nicht ausgelöst. setze ich aber im avr-studio manuel das bit TXC, so wird dieser korrekt ausgeführt. liegt das am avr-studio oder an meinem code.
Ich kanns noch nicht zu 100% ausschliessen, aber ich vermute, daß es am Studio liegt. Kannst Du den Code denn nicht mal auf nem realen Prozessor testen?
Scheint am Simulator zu liegen!? Der Interrupt für UDRE wird nur ein einziges mal ausgelöst, egal, wie oft man ihn aktiviert und wie viele Bytes übertragen werden.
Dieser "Bug" tritt bei vielen IRQ's auf. Anscheinend setzt der Simulator das Interrupt-Flag nicht automatisch zurück wenn eine ISR aufgerufen wurde. Eventuell hilft es nun dieses Interruptflag per Code selber in der ISR zurückzusetzen. Einfach eine 1 in das Register schreiben, damit der Simulator des Interuptflag neu einliest. Gruß Hagen
danke für eure antworten habe leider gerade keinen atmega16, werde mir einen besorgen und melde mich dann.
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.