I have the following code to interface the NS-45/P inclinometer to interface with Atmega48 and I am using IMAGECRAFT ICCAVR but on conditional compilation (I am using conditional compilation to test my code on Hyyperterminal as well i.e. I have two testing modes "Debug" mode in which I am receiving data on Hyper-terminal and release mode through I have I am receiving data through controller)I have got the following warnings which I cant understand:
!W .\TEST002..c(6): extra token "RELEASE" in preprocessor directive
!W .\TEST002..c(51): extra token "DEBUG" in preprocessor directive
!W .\TEST002..c(92): extra token "DEBUG" in preprocessor directive
!W .\TEST002..c(96): extra token "RELEASE" in preprocessor directive
C:\PROGRA~1\iccv7avr\bin\imakew -f TEST002.mak
iccavr -o TEST002 -g -e:0x1000 -bfunc_lit:0x34.0x1000 -dram_end:0x2ff -bdata:0x100.0x2ff -dhwstk_size:30 -beeprom:0.256 -fihx_coff -S2 @TEST002.lk -lcatmega
Device 21% full.
Done. Thu Jun 12 20:24:35 2008
My Code is as Follows:
#include <iom48v.h>
//To go in DEBUG Mode, comment the following line
//#define RELEASE
#ifndef RELEASE
#define DEBUG
#endif RELEASE
#pragma interrupt_handler USART_interrupt_UDRE:iv_USART0_UDRE
#pragma interrupt_handler USART_interrupt_TX:iv_USART0_TXC
#pragma interrupt_handler USART_interrupt_RX:iv_USART0_RXC
int bPacketReady = 0;//Setting false as default
int iRecieveBuffer [10];
int iOutputBuffer [10];
int i, j, k, l;
const int iLEDCodes [10] = { 0x03, 0x9F, 0x25, 0x0D, 0x99, 0x49, 0x41, 0x1F, 0x01, 0x09 };
const int iMUXCodes [6] = { 0x01, 0x02, 0x04, 0x08, 0x10, 0x20 };
int main ( void )
{
//Setting up General purpose Configuration
PRR = PRR & 0b11111101; //Enable USART0
//Setting up USART Configuration
UCSR0B = 0x00; //Transmit Enable, Recieve Enable
UCSR0A = 0x02; //U2X = 1
UCSR0C = 0x06; //Transmit 8-bit Data
UBRR0L = 0x0C; //
UBRR0H = 0x00; //Baud Rate
UCSR0B = 0xF8; //Transmit Enable, Recieve Enable
//Port Direction Registers
DDRB = 0xFF;
DDRC = 0xFF;
asm("sei"); //Enable all interrupts
k = 0;
l = 0;
while ( 1 )
{
//Code Body here
if ( bPacketReady == 1 )
{
//Uncomment the following block when in DEBUG Mode
#ifdef DEBUG
for( j = 0; j < 9; j++ )
{
while (!(UCSR0A & 0x20));
UDR0 = iRecieveBuffer[j];
iOutputBuffer [j] = iRecieveBuffer [j];
}
#endif DEBUG
bPacketReady = 0;
}
if ( k == 0 ) //Checking sign of the Packet
{
if ( iOutputBuffer
{
PORTC = 0x01;
PORTB = 0xFD;
}
k++; l++;
continue;
}
if ( k == 3 )
l++; //i think this block is not required... kh//
iOutputBuffer [l] &= 0x0F;
PORTB = 0xFF;
PORTC = iMUXCodes [k++];
if ( k == 3 )
PORTB = iLEDCodes [iOutputBuffer[l++]] & 0xFE;
else
PORTB = iLEDCodes [iOutputBuffer[l++]];
if ( k == 6 ) k = 0;
if ( l == 7 ) l = 0;
}
return 1;
}
void USART_interrupt_RX(void)
{
//USART Reception complete routine
//USART Reception complete routine
#ifdef DEBUG
iRecieveBuffer [i++] = UDR0;
#endif DEBUG
#ifdef RELEASE
iOutputBuffer [i++] = UDR0;
#endif RELEASE
iOutputBuffer [i++] = UDR0;
if( i == 9 )
{
bPacketReady = 1;
i = 0;
}
}
void USART_interrupt_TX(void)
{
;
}
void USART_interrupt_UDRE(void)
{
;
}
Please Help me to solve the following to avoid following warnings
Thanks in Advance