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