PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit optischer Maus an STK500 mit ATMega32



collatz
21.04.2008, 17:49
Hallo zusammen,

ich hab einen STK500 mit einem ATMega32. Ich möchte eine optische PS2 Maus daran anschließen und die Daten auslesen. Allerdings scheitere ich bereits daran. Wie im Codebeispiel zu sehen ist, sollte er in die Interruptroutine springen was er allerdings nicht tut. Die Lämpchen bleiben immer an (obwohl sie durch einen Interrupt eigentlich aus sein sollten... und der Interrupt müsste definitiv auftreten).
Hier mal der Code, den wir verwenden...



#include <inttypes.h> // Allgemeine Bibliotheken
#include <avr/io.h>
#include <avr/interrupt.h>


SIGNAL (INT0_vect)
{
PORTB = 255;
}


int main (void) {

DDRB=255;
PORTB=0; // Alle Ausgänge auf 1

GICR = (1<<INT0);
MCUCR = 2; // INT0 interrupt on falling edge

while(1){

}
}


Hat irgendwer eine Idee woran das liegen könnte? Ich habe schon wirklich etliche Stunden gesucht allerdings bin ich nicht wirklich fündig geworden.

Viele Grüße,

der Collatz ;)

Herkulase
21.04.2008, 21:17
ähm, müsstest du nicht mit sei() die interrupts erlauben? (Bin auch erst relativ am Anfang mit AVR-c...)
Ausserdem solltest Du noch den INT0 pin auf Eingang stellen, und den Pull-up aktivieren. Schau dir am besten mal ein paar einfache C-Programme an, und geh die üblichen Tutorials durch, dann findest Du sicher leichter den Einstieg. Mir hat geholfen, dass ich erst mal die Grundlagen mit Assembler gelernt habe, da kriegt man ein gutes Gefühl für die "Denkweise" des uCs.

Außerdem würde ich mir gleich angewöhnen, die gängigen Schreibweisen zu verwenden, dann können andere, und Du auch, Dienen Code schneller verstehen. (GICR = (1<<ISC01) ist einfach schneller zu verstehen als GICR = 2, und weniger fehleranfällig)

Gruß

GEald