Interupt med Mega168 funkar ej
Postat: 28 april 2007, 22:31:03
Hej alla glada!
Testar att clocka in data men det fungerar inte.
Kan någon se vad som är fel?
//Emil
Testar att clocka in data men det fungerar inte.
Kan någon se vad som är fel?
Kod: Markera allt
#include <avr/interrupt.h>
#include <util/delay.h>
#define F_CPU 8000000UL
#define C_PORT PORTB
#define C_MASK (0<<0)|(0<<1)
#define LED_PORT PORTD
#define DATA_PIN 2
volatile unsigned char data = 0;
int main(void)
{
cli();
DDRB = C_MASK;
DDRD = 0xFF;
EICRA = (1<<ISC11)|(1<<ISC10); // Rising edge
PCICR = (1<<PCIE0); // Interupt somewhere in PCINT0..7
PCMSK0 = (1<<PCINT0); // Interupt is on PCINT0
sei();
while(1)
{
LED_PORT = data;
}
return 0;
}
SIGNAL(SIG_PIN_CHANGE0)
{
if(PINB & DATA_PIN)
data <<= 1;
else
data <<= 0;
}