Microchip® Advanced Software Framework

mega/applications/mega-1284p_xplained_example/avr_compiler.h File Reference

This file implements some macros that makes the IAR C-compiler and avr-gcc work with the same code base for the AVR architecture.

Documentation
For comprehensive code documentation, supported compilers, compiler settings and supported devices see readme.html

Microchip Technology Inc: http://www.microchip.com

Revision:
613
Date:
2006-04-07 14:40:07 +0200 (fr, 07 apr 2006)


Copyright (c) 2014-2018 Microchip Technology Inc. and its subsidiaries.

#include <stdint.h>
#include <stdbool.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/pgmspace.h>
#include <util/delay.h>
#include <avr/sleep.h>

Macros

#define AVR_ENTER_CRITICAL_REGION()
 This macro will protect the following code from interrupts. More...
 
#define AVR_LEAVE_CRITICAL_REGION()   SREG = saved_sreg;
 This macro must always be used in conjunction with AVR_ENTER_CRITICAL_REGION so the interrupts are enabled again. More...
 
#define delay_us(us)   (_delay_us( us ))
 Define the delay_us macro for GCC. More...
 
#define F_CPU   11059200UL
 Define default CPU frequency, if this is not already defined. More...
 
#define INLINE   static inline
 
#define MAIN_TASK_EPILOGUE()   return -1;
 
#define MAIN_TASK_PROLOGUE   int
 
#define nop()   do { __asm__ __volatile__ ("nop"); } while (0)
 Define the no operation macro. More...
 
#define SHORTENUM   __attribute__ ((packed))
 
#define sleep_enter()   sleep_cpu()
 Define the sleep_enter macro for GCC. More...
 

#define AVR_ENTER_CRITICAL_REGION ( )
Value:
uint8_t volatile saved_sreg = SREG; \
cli();

This macro will protect the following code from interrupts.

#define AVR_LEAVE_CRITICAL_REGION ( )    SREG = saved_sreg;

This macro must always be used in conjunction with AVR_ENTER_CRITICAL_REGION so the interrupts are enabled again.

#define delay_us (   us)    (_delay_us( us ))

Define the delay_us macro for GCC.

#define F_CPU   11059200UL

Define default CPU frequency, if this is not already defined.

#define INLINE   static inline
#define MAIN_TASK_EPILOGUE ( )    return -1;
#define MAIN_TASK_PROLOGUE   int
#define nop ( )    do { __asm__ __volatile__ ("nop"); } while (0)

Define the no operation macro.

#define SHORTENUM   __attribute__ ((packed))
#define sleep_enter ( )    sleep_cpu()

Define the sleep_enter macro for GCC.