Hallo,
ich habe vor kurzem erst angefangen mich mit dem Thema µC zu
beschäftigen, da ich es für meine Hiwi Tätigkeit benötige.
Habe zu erst mal ein einfaches Lauflicht gemacht funktioniert auch. Mein
Problem ist jetzt, dass ich dass Lauflicht durch einen externen
Interrupt (Switch an PortD) langsamer laufen lassen will. Verwende ein
STK 500 mit einem Atmega 8515. Switsches sind auf PortD, Leds auf PortB.
Mein Programmcode ist wie folgt:
------------------------------------------------------------------------
---
#include <avr/io.h>
#include <avr/interrupt.h>
signed char flag=0;
int main (void)
{
unsigned char i=0;
unsigned char x=0;
signed char y=0;
GICR = (1<<INT1);
MCUCR = (1<<ISC11 | 1<<ISC10);
DDRB = 0xff;
TCCR0 = 0b00000101;
sei();
for(;;)
{
if (flag==1)
{
y=y+20;
flag=0;
}
x=15+y;
if (i>7)
{
i=0;
}
if(TCNT0==x)
{
i++;
TCNT0=0;
}
PORTB =~ (1 << i);
}
}
ISR (INT1_vect)
{
flag=1;
------------------------------------------------------------------------
---
Nun sollte eigentlich wenn ich den Switch drücke die Taktung der Leds
jeweils langsamer werden. Funktioniert aber leider nicht und ich stehe
ziemlich auf dem Schlauch.
vielen Dank schon mal im vorraus