Hallo, ich bin relativ neu in NIOS und versuche grad eine blinkende LED mit einem TimerInterrupt zu realisieren. Jedoch klappt das nicht so wie das soll :) Vielleicht hat ja wer eine Ahnung wo das Problem sein könnte. static void timer_interrupts(void* context, alt_u32 id) { IOWR_ALTERA_AVALON_TIMER_STATUS(TIMER_BASE, 0); } int main() { alt_irq_register(TIMER_IRQ, NULL, timer_interrupts); while(1) { IOWR_ALTERA_AVALON_TIMER_PERIODL(TIMER_BASE, 0x00ff); IOWR_ALTERA_AVALON_TIMER_PERIODH(TIMER_BASE, 0x00); IOWR_ALTERA_AVALON_PIO_DATA(LED_BASE, 0x01); } } Wobei mein Timer eine Periode von 10 ms hat. Würde mich über Hilfe freuen :) Grüße, Thom
Timer Konfiguration raus aus der While Schleife (ist nicht das Problem). Und überleg dir mal warum es in deinem Fall zu keinem Blinken kommt
neuer versuch ^^ alt_u8 x = 0x00; static void timer_interrupts(void* context, alt_u32 id) { IOWR_ALTERA_AVALON_TIMER_STATUS(TIMER_BASE, 0); IOWR_ALTERA_AVALON_PIO_DATA(LED_BASE, x); x = x + 1; } int main() { alt_irq_register(TIMER_IRQ, NULL, timer_interrupts); IOWR_ALTERA_AVALON_TIMER_PERIODL(TIMER_BASE, 0x0064); IOWR_ALTERA_AVALON_TIMER_PERIODH(TIMER_BASE, 0x00); while(1); } so sieht nun das programm aus, jedoch geht es immer noch nicht. er bringt noch das alt_irq_register nicht deklariert ist. hat vielleicht noch wer ein tipp ? :) und ich hätte noche eine frage zu dem timer. mein timer hat eine periode von 10ms. ist es dann richtig, wenn ich in der periodl einen wert von 100 eintrage damit der interrupt 1s lang ist ?
Thoms schrieb: > und ich hätte noche eine frage zu dem timer. mein timer hat eine periode > von 10ms. ist es dann richtig, wenn ich in der periodl einen wert von > 100 eintrage damit der interrupt 1s lang ist ? Also einer von uns beiden bringt da etwas durcheinander. Wenn Du die Periodendauer des Timers im SOPC Builder auf 10 ms festlegst, dann kannst Du doch von den Register PERIODL und PERIODH die Finger lassen in der Software. Die sind doch dann schon eingestellt, oder? Harald
Nur ein kleiner Tipp am Rande: Wenn die Interrupts nach dem konfigurieren auch noch aktiviert werden, soll das schon so manches Wunder bewirkt haben. Hier steht alles drin was du wissen musst: http://www.altera.com/literature/hb/nios2/n2sw_nii52010.pdf
Ja, hab ich auch schon rausgefunden :) Funktioniert inzwischen. Danke für die Hilfe.
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.