AVRStudio symulacja i przerwania



Masz problem? Zapytaj na forum elektroda.pl

Poprzedni Następny
Wiadomość
Spis treści
From: "Krzysztof" <krysss1981_at_nospam_poczta.onet.pl>
Subject: AVRStudio symulacja i przerwania
Date: Fri, 2 Dec 2005 11:42:55 +0100


Witam!

Nie wiem o co chodzi!!
Używam AVRStudio4.12 (i kompilatora gcc).
Mam sobie krótki programik jak niżej.
Próbuje symulować to w AVRStudio i dzieją się dziwne rzeczy.
Po funkcji sei() program wskakuje do obsługi przerwania
SIGNAL(SIG_INTERRUPT1)
pomimo, że bit INTF1 w GIFR jest wyzerowany.
Czy powinienem się tym przejmować, tzn. czy
w układzie docelowym program będzie się zachowywał tak samo czy to tylko
taka fanaberia symulatora AVRStudio.


#include <avr\io.h>
#include <avr\interrupt.h>
#include <avr\signal.h>

void RC5_init(void);
void Timer_init(void);
int numer_bitu;

INTERRUPT (SIG_OUTPUT_COMPARE2)
{
numer_bitu++;
}

SIGNAL (SIG_INTERRUPT1)
{
numer_bitu++;
}

void RC5_init(void)
{
MCUCR |= 1<<ISC11;
MCUCR &= ~(1<<ISC11);
// GIFR= 1<<INTF1;
GICR |=1<<INT1;
}

void Timer_init(void)
{
OCR2=225; //3/4*1,8ms = 1,35 ms
//TIFR=1<<OCF2;
TCCR2=1<<WGM21|1<<CS22|1<<CS20;
TIMSK=1<<OCIE2;
TCNT2=0;
}

void main(void)
{
unsigned char tp1;
unsigned char ledy;

RC5_init();
sei();
DDRD=0x00;
DDRC=0xFF;

while(1){}
}








Poprzedni Następny
Wiadomość
Spis treści
From: "Bogdan Gutknecht" <b_gutknecht_at_nospam_interia.pl>
Subject: Re: AVRStudio symulacja i przerwania
Date: Fri, 2 Dec 2005 12:20:29 +0100



Użytkownik "Krzysztof" <krysss1981_at_nospam_poczta.onet.pl> napisał w wiadomości
news:dmp8eh$art$1_at_nospam_inews.gazeta.pl...
Witam!

Nie wiem o co chodzi!!
Używam AVRStudio4.12 (i kompilatora gcc).
Mam sobie krótki programik jak niżej.
Próbuje symulować to w AVRStudio i dzieją się dziwne rzeczy.
Po funkcji sei() program wskakuje do obsługi przerwania
SIGNAL(SIG_INTERRUPT1)
pomimo, że bit INTF1 w GIFR jest wyzerowany.
Czy powinienem się tym przejmować, tzn. czy
w układzie docelowym program będzie się zachowywał tak samo czy to tylko
taka fanaberia symulatora AVRStudio.


#include <avr\io.h>
#include <avr\interrupt.h>
#include <avr\signal.h>

void RC5_init(void);
void Timer_init(void);
int numer_bitu;

INTERRUPT (SIG_OUTPUT_COMPARE2)
{
numer_bitu++;
}

SIGNAL (SIG_INTERRUPT1)
{
numer_bitu++;
}

void RC5_init(void)
{
MCUCR |= 1<<ISC11;
MCUCR &= ~(1<<ISC11);

Czy aby na pewno o to Ci chodziło??? Może ISC10 ???


// GIFR= 1<<INTF1;
GICR |=1<<INT1;
}

void Timer_init(void)
{
OCR2=225; //3/4*1,8ms = 1,35 ms
//TIFR=1<<OCF2;
TCCR2=1<<WGM21|1<<CS22|1<<CS20;
TIMSK=1<<OCIE2;
TCNT2=0;
}

void main(void)
{
unsigned char tp1;
unsigned char ledy;

RC5_init();
sei();
DDRD=0x00;
DDRC=0xFF;

Lepiej chyba ustawić kierunki portów z wyłšczonymi przerwaniami - na samym
poczštku.