Forum: Compiler & IDEs uart-problem mit atmega16


von Jack (Gast)


Angehängte Dateien:

Lesenswert?

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?

von OldBug (Gast)


Lesenswert?

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...

von Hirsch (Gast)


Lesenswert?

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

von Jack (Gast)


Lesenswert?

@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.

von OldBug (Gast)


Lesenswert?

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?

von OldBug (Gast)


Lesenswert?

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.

von Hagen (Gast)


Lesenswert?

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

von Jack (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.