WinAVR
MK
info@mcu.cz
Neděle Duben 24 12:10:30 CEST 2005
> Uz se tu docela dlouho trapim nad jednim problemkem. Pokousim se rozjet
> kod
> napsany pro IAR EWAAVR ve WinAVR. Jedna se o Application Note od Atmelu:
>
> AVR311: Using the TWI module as I2C slave
>
> nejak mi to nefunguje. Myslim, ze mam nastaveno vse co mam mit, ale make
> porad hlasi:
>
> vypada to, jako kdyby nevidel *.h soubor, ale ja ho v main.c uvedeny mam.
> Neresil nekdo neco podobneho?
>
Jsem jeste neprobuzen, prave se snazim se rozkoukat a tak jsem vstricne
naladen :-)))
Scucnul jse si AVR311, upravil syntax pro AVR GCC a prelozil naprosto bez
chyby
behem cca 5 minut - sice jen "/standard", ale ten druhy projekt je snad
obdobny az na to,
ze je treba spravne nastavit cestu pro #include "TWI_Slave.h",
nebo si prikopirovat TWI_slave.c a TWI_slave.c do aktualniho adresare
Zmeny
TWI_slave.c
1)
#include <avr/interrupt.h>
#include <avr/signal.h>
//#include "ioavr.h"
//#include "inavr.h"
2)
//#pragma vector=TWI_vect
//__interrupt void TWI_ISR( void )
SIGNAL (SIG_2WIRE_SERIAL)
main.c
1)
#include <avr/interrupt.h>
2)
void main(void)
prepsat na
int main(void)
3)
// __enable_interrupt(void);
nahradit
sei();
4)
// __no_operation();
nahradit
asm volatile ("nop"::);
Vysledek:
avr-gcc -mmcu=atmega16 -Os -mno-interrupts -funsigned-char -funsigned-bitfields
-Wall -Wstrict-prototypes -ggdb -c -Wa,-acdhlmns=TWI_slave.lst
TWI_slave.c -o TWI_slave.o
avr-gcc -mmcu=atmega16 -Os -mno-interrupts -funsigned-char -funsigned-bitfields
-Wall -Wstrict-prototypes -ggdb -c -Wa,-acdhlmns=main.lst main.c -o main.o
avr-gcc -mmcu=atmega16 -Os -mno-interrupts -funsigned-char -funsigned-bitfields
-Wall -Wstrict-prototypes -ggdb TWI_slave.o main.o -o
_NewProject.elf -Wl,-Map=_NewProject.map --cref
S pozdravem
MK
Další informace o konferenci Hw-list