hallo zusammen. habe mit einem atmega 168 ein glcd angesteurt und das ganze hat funktioniert. nun wollte ich einen atmega 644 anstelle des 168 einsetzen. am aufbau hat sich nichts verändert, nur ruft der 644 jetzt irgendwie nichtmehr meine interruptfunktion auf. er benutzt den timer0 und ist dort auf den compA modus geschalten. aber wie gesagt, diese hier wird nicht aufgerufen. ISR (TIMER0_COMPA_vect) {... } (vorher mit dem 168 ging's) hab auch keine anderen namen bei den registern vorgefunden. (die einstellungen sind gleich)
eukalyptusbonbon schrieb: > nun wollte ich einen atmega 644 anstelle des 168 > einsetzen. am aufbau hat sich nichts verändert Der 168 hat 32 Pins, der 644 hat 44 Pins.
Ja schon klar mit der pin zahl.. geht ja nur um das Prinzip. Kann auf jedenfall feststellen das das Programm bis zu ISR läuft. Dir namen der isr routinen sind auch gleich (hab einmal im Datenblatt und dann noch auf einer seite geschaut) :/
Hallo, ich werfe nur mal ein, dass es einen atmega644 und atmega644p gibt und die unterscheiden sich wirklich ! *AVR508: Migration from ATmega644 to ATmega644P* http://www.atmel.com/Images/doc8038.pdf
der hier ist vom typ atmega 644V10PU - müsste also passen oder? also mit atmgea 644
#include <asf.h> //von avr studio generiert -> wählt dazugehörige dateien aus, interrupt,board,... (auch wenn man #include <avr/interrupt.h> probiert, geht es nicht) uint8_t zeit_ms=0; int main(void) { sei(); initialisierung_timer0(); while(1) {... warten_ms(20); } } void initialisierung_timer0(void) { TCCR0A =0x02; //clear timer on compare match erlauben OCR0A =124; // Output Compare Register A für 1 millisekunde TIMSK0 =0b000000010; //Interrupt bei Match } void warten_ms(uint8_t millisekunden) { TCNT0 =0; zeit_ms=0; TCCR0B =Timer0_start; //64 prescaler /////////Hier kommt er noch an///////////////// while (zeit_ms<millisekunden) //1 Match hat genau eine Millisekunde { ; } //////////////^in der Schleife hängt er//////////// TCCR0B =Timer0_stopp; } ISR (TIMER0_COMPA_vect) { zeit_ms++; }
die funktionsprototypen stehen auch noch über main drüber.
<3 :). aber komisch warum das damals ohne probleme getan hat
eukalyptusbonbon schrieb: > geht ja nur um das Prinzip eukalyptusbonbon schrieb: > am aufbau hat sich nichts verändert Was davon denn nun? :-) Ein Unterschied ist, dass der 644 JTAG hat und wenn man die Pins als I/Os benutzen möchte muss man JTAG erstmal abschalten.
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.