Yahoo Groups archive

AVR-Chat

Index last updated: 2026-04-28 22:41 UTC

Message

Re: [AVR-Chat] Gcc code error question

2005-04-12 by Jesper Hansen

You have "if" with a capital "I" in the signal handler.
Change to "if".

/Jesper

----- Original Message ----- 
From: "arhodes19044" <spamiam@comcast.net>
To: <AVR-Chat@yahoogroups.com>
Sent: Tuesday, April 12, 2005 4:00 PM
Subject: [AVR-Chat] Gcc code error question


> 
> 
> I am trying out some GCC code.  I started with the BDmicro example 
> which sets a timer interrupt and flashes the LED on his board.  I 
> then tried to make the interrupt handler toggle the LED avery 1024 
> ticks.  I got errors that I can't explain.
> 
> Here is the code.  WHite space is slightly trimmed for compactness
> 
> 
> --------------------------------------
> #include <avr/io.h>
> #include <avr/interrupt.h>
> #include <avr/signal.h>
> #include <inttypes.h>
> 
> volatile uint16_t ms_count;
> /* millisecond counter interrupt vector */
> 
> SIGNAL(SIG_OUTPUT_COMPARE0)
> {
>  ms_count++;
>  If (ms_count == 1024) 
>  {
> PORTB ^= 0x01;    /* toggle LED */ /* toggles every second */
> ms_count = 0;
>  }
> }
> 
> void init_timer(void)
> {
>  /*
>   * Initialize timer0 to generate an output compare interrupt, and
>   * set the output compare register so that we get that interrupt
>   * every millisecond.
>   */
>  TIFR  |= _BV(OCIE0);
>  TCCR0  = _BV(WGM01)|_BV(CS02)|_BV(CS00); /* CTC, prescale = 128 */
>  TCNT0  = 0;
>  TIMSK |= _BV(OCIE0);    /* enable output compare interrupt */
>  OCR0   = 125;          /* match in 1 ms */
> }
> 
> 
> int main(void)
> {
> DDRB = 0x01;  /* enable PORTB 1 as an output */
> init_timer();
> 
>  /* enable interrupts */
> sei();
> while (1) 
>        {
>    /* loop endlessly */
> }
> 
> }
> 
> 
> ----------- and the error I get is:
> 
>> "make.exe" all
> avr-gcc -g -mmcu=atmega128 -Wall -O   -c -o hw.o hw.c
> hw.c: In function `__vector_15':
> hw.c:50: warning: implicit declaration of function `If'
> hw.c:51: error: parse error before '{' token
> hw.c: At top level:
> hw.c:55: error: parse error before '}' token
> make.exe: *** [hw.o] Error 1
> 
>> Process Exit Code: 2
> 
> 
> ----------------------------------------
> 
> 
> The IF statement inside the interrupt handler is the problem.
> 
> It looks fine to me.  What is wrong?
> 
> -Tony
> 
> 
> 
> 
> 
> 
> Yahoo! Groups Links
> 
> 
> 
> 
> 
> 
> 
>

Attachments

Move to quarantaine

This moves the raw source file on disk only. The archive index is not changed automatically, so you still need to run a manual refresh afterward.