projects
/
avr_serial_lcd.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add lss file for cpp_obj program
[avr_serial_lcd.git]
/
serial_lcd.h
diff --git
a/serial_lcd.h
b/serial_lcd.h
index d02e589c13c8ba6e7ee3889d4bb67850f8907fd0..9d4439836ca0b847ea223c1ccd707820216ef1a5 100644
(file)
--- a/
serial_lcd.h
+++ b/
serial_lcd.h
@@
-43,13
+43,13
@@
typedef struct
unsigned bit6:1;
\r
unsigned bit7:1;
\r
} _io_reg;
\r
unsigned bit6:1;
\r
unsigned bit7:1;
\r
} _io_reg;
\r
+#define REGISTER_BIT(rg,bt) ((volatile _io_reg*)_SFR_MEM_ADDR(rg))->bit##bt
\r
\r
#define FLASH_DECLARE(x) const x __attribute__((progmem))
\r
#define NO_INIT_DECLARE(x) x __attribute__((section (".noinit")))
\r
#define INLINE_FUNC_DECLARE(x) inline x __attribute__((always_inline))
\r
#define PGM_READ_BYTE(x) pgm_read_byte(x)
\r
#define NOP() asm volatile("nop");
\r
\r
#define FLASH_DECLARE(x) const x __attribute__((progmem))
\r
#define NO_INIT_DECLARE(x) x __attribute__((section (".noinit")))
\r
#define INLINE_FUNC_DECLARE(x) inline x __attribute__((always_inline))
\r
#define PGM_READ_BYTE(x) pgm_read_byte(x)
\r
#define NOP() asm volatile("nop");
\r
-#define REGISTER_BIT(rg,bt) ((volatile _io_reg*)_SFR_MEM_ADDR(rg))->bit##bt
\r
#define REGISTER_VAR(V,GNU,IAR) register volatile V asm(GNU)
\r
#define NO_RETURN_FUNC(fn) fn __attribute__((noreturn)); \
\r
fn
\r
#define REGISTER_VAR(V,GNU,IAR) register volatile V asm(GNU)
\r
#define NO_RETURN_FUNC(fn) fn __attribute__((noreturn)); \
\r
fn
\r
@@
-104,22
+104,11
@@
typedef __flash unsigned int prog_uint32_t;
\r
// Below #include requires ICC v7.16+
\r
#include <iccioavr.h>
\r
\r
// Below #include requires ICC v7.16+
\r
#include <iccioavr.h>
\r
-typedef struct {
\r
- unsigned bit0:1;
\r
- unsigned bit1:1;
\r
- unsigned bit2:1;
\r
- unsigned bit3:1;
\r
- unsigned bit4:1;
\r
- unsigned bit5:1;
\r
- unsigned bit6:1;
\r
- unsigned bit7:1;
\r
-} _io_reg;
\r
\r
#define NOP() asm("nop");
\r
// ImageCraft does not support inline functions
\r
#define inline
\r
#define INLINE_FUNC_DECLARE(x) x
\r
\r
#define NOP() asm("nop");
\r
// ImageCraft does not support inline functions
\r
#define inline
\r
#define INLINE_FUNC_DECLARE(x) x
\r
-#define REGISTER_BIT(rg,bt) ((volatile _io_reg*)&rg)->bit##bt
\r
#define NO_RETURN_FUNC(fn) fn
\r
#define MAIN_FUNC() void main(void)
\r
#define MAIN_FUNC_LAST()
\r
#define NO_RETURN_FUNC(fn) fn
\r
#define MAIN_FUNC() void main(void)
\r
#define MAIN_FUNC_LAST()
\r
@@
-136,44
+125,69
@@
typedef struct {
\r
// CodeVision Compiler
\r
#elif defined(__CODEVISIONAVR__)
\r
\r
// CodeVision Compiler
\r
#elif defined(__CODEVISIONAVR__)
\r
+
\r
#include <io.h>
\r
#include <io.h>
\r
+#include <delay.h>
\r
+#include <sleep.h>
\r
\r
\r
-typedef struct {
\r
- unsigned bit0:1;
\r
- unsigned bit1:1;
\r
- unsigned bit2:1;
\r
- unsigned bit3:1;
\r
- unsigned bit4:1;
\r
- unsigned bit5:1;
\r
- unsigned bit6:1;
\r
- unsigned bit7:1;
\r
-} _io_reg;
\r
+#if defined(_CHIP_ATTINY2313_) || defined(_CHIP_ATTINY2313V_)
\r
+ #if !defined(WDTCSR)
\r
+ #define WDTCSR WDTCR
\r
+ #endif
\r
+// Below are bit position definitions for the ATtiny2313
\r
+ #define UCSZ0 1
\r
+ #define UCSZ1 2
\r
+ #define TXEN 3
\r
+ #define RXEN 4
\r
+ #define DOR 3
\r
+ #define FE 4
\r
+ #define RXC 7
\r
+ #define RXCIE 7
\r
+ #define PD1 1
\r
+ #define PD2 2
\r
+ #define PD3 3
\r
+ #define PD4 4
\r
+ #define PD5 5
\r
+ #define PD6 6
\r
+ #define PB7 7
\r
+ #define CS02 2
\r
+ #define WGM01 1
\r
+ #define OCIE0A 0
\r
+ #define WDP0 0
\r
+ #define WDP1 1
\r
+ #define WDP2 2
\r
+ #define WDE 3
\r
+ #define WDCE 4
\r
+ #define WDP3 5
\r
+ #define WDRF 3
\r
+ #define SM0 4
\r
+ #define SM1 6
\r
+ #define SE 5
\r
+ #define USART_RX_vect USART_RXC
\r
+ #define TIMER0_COMPA_vect TIM0_COMPA
\r
+#endif
\r
\r
#define FLASH_DECLARE(x) flash x
\r
\r
#define FLASH_DECLARE(x) flash x
\r
-#define ASM(a) asm(a)
\r
-#define NOP() asm("nop");
\r
+#define ASM(a) #asm(a)
\r
+#define NOP() #asm("nop")
\r
+#define cli() #asm("cli")
\r
+#define sei() #asm("sei")
\r
+#define wdt_reset() #asm("wdr")
\r
+#define sleep_cpu() #asm("sleep")
\r
+#define REGISTER_VAR(V,GNU,IAR) register V
\r
#define inline
\r
#define INLINE_FUNC_DECLARE(x) x
\r
#define inline
\r
#define INLINE_FUNC_DECLARE(x) x
\r
-#define REGISTER_BIT(rg,bt) ((volatile _io_reg*)&rg)->bit##bt
\r
#define NEAR_VAR(x) x
\r
#define NO_RETURN_FUNC(fn) fn
\r
#define NEAR_VAR(x) x
\r
#define NO_RETURN_FUNC(fn) fn
\r
-#define MAIN_FUNC(fn) fn
\r
#define MAIN_FUNC() void main(void)
\r
#define MAIN_FUNC_LAST()
\r
#define MAIN_FUNC() void main(void)
\r
#define MAIN_FUNC_LAST()
\r
+#define PGM_READ_BYTE(x) (*(x))
\r
\r
\r
-// 2007/11/29 - ImageCraft states they will support _Pragma() like IAR
\r
-// in a "few months". At that point, REGISTER_VAR and NO_INIT_DECLARE can
\r
-// be supported. REGISTER_VAR will need to be expanded with 4th variable to
\r
-// hold register number for ImageCraft.
\r
-// noinit for ImageCraft requires #pragma data:noinit
\r
-//#define NO_INIT_DECLARE(x) _Pragma(data:noinit); x; _Pragma(data:data);
\r
#define NO_INIT_DECLARE(x) x
\r
#define NO_INIT_DECLARE(x) x
\r
-//#define REGISTER_VAR(V,GNUR,IAR,ICC) _Pragma(global_register V ## : ## ICC)
\r
-#define REGISTER_VAR(V,GNUR,IAR) V
\r
+#define ISR(vec) interrupt [ ## vec ## ] void vec ## _handler(void)
\r
\r
\r
-#define cli() asm("cli")
\r
-#define sei() asm("sei")
\r
-#define wdt_reset() asm("wdr")
\r
+#define _delay_us(us) delay_us(us)
\r
+#define _delay_ms(ms) delay_ms(ms)
\r
\r
#else
\r
#error Unsupported compiler
\r
\r
#else
\r
#error Unsupported compiler
\r