Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

[atmega] communicatie dmv interrupt

Pagina: 1
Acties:

Verwijderd

Topicstarter
ik wil dmv een intterupt de ontvange data op de uart gebruiken

code:
1
2
3
4
5
6
7
UCSRB = (1<<RXEN)|(1<<TXEN)|(1<<RXCIE) |(1<<UDRIE);

INTERRUPT(SIG_UART0_RECV)
{
 
   // hier doe ik mijn dingen
}


intterupts staan aan dmv sei()
at me opvalt is dat atmega veeeel langzamer word als ik RXCIE aan heb gezet ?
en dat ik nooit in de INTERRUPT(SIG_UART0_RECV) kom
iemand een idee ?

de compiler is winavr met gcc

[ Voor 9% gewijzigd door Verwijderd op 03-04-2005 14:16 ]


  • Maijn Buu
  • Registratie: Oktober 2003
  • Laatst online: 06-08-2021
Ik denk dat komt omdat je de include files niet goed aan de praat hebt. Kijk goed of alle verwijzingen goed hebt staan en dat alles ook daadwerkelijk klopt. Ik heb hetzelfde probleem gehad en toen bleek dat in de avrpro.bat file mijn controller verkeerd stond aangegeven waardoor de cpu langzamen ging lopen en hij kwam ook niet in de interrupt handler.

Buu, Boe whats the difference


  • frickY
  • Registratie: Juli 2001
  • Laatst online: 21-11 10:33
Ik heb geen ervaring met he tproggen van hardware controllers. Maar ik kan me voorstellen dat wanneer je intterupts gebruikt je wat cycles verliest omdat hij moet controleren of er een ingang is veranderd.

  • Steefph
  • Registratie: Juli 2002
  • Laatst online: 18-11 12:42
(jarig!)
frickY schreef op maandag 04 april 2005 @ 08:59:
Ik heb geen ervaring met he tproggen van hardware controllers. Maar ik kan me voorstellen dat wanneer je intterupts gebruikt je wat cycles verliest omdat hij moet controleren of er een ingang is veranderd.
Nee, interrupts zijn hardware matige software sprongen in de chip. Op het moment van veranderen (of gewenste staat) zal de software direkt springen naar het daarvoor bedoelde programma (interrupt service routine).

Alles is terug te redeneren naar 4


  • joca
  • Registratie: Oktober 2000
  • Laatst online: 12-07 20:25
Welke ATmega gebruik je?

Als ik naar je interrupt kijk is het er een met 2 UART's een Mega64 of 128 ofzo.
Als dat zo is stel je denk ik het verkeerde register is, je zal dan ook het register voor UART0 in moeten stellen.

  • kippy
  • Registratie: September 2004
  • Laatst online: 22:17
inderdaad, welke controller gebruik je.

Voor de rest heb ik veel met atmels contollers gewerkt maar altijd in assembly geprogrameerd. Dus nu kan ik me nog bedenken:
- Heb je een vector gemaakt foor het aanroepen van je interupt (.org)
- En je bautrate?
- Vergeet je interupt niet te resetten op het moment dat de interrupt is aanregoepen

dus ja, geef eens wat extra informatie of kijk eens op AVRfreaks.com
Pagina: 1