AVR-Port E (ATmega8515)

Hejsa

Jeg sidder og er igang med et projekt med en ATMega8515. Her skal jeg benytte de 3 I/O'er på Port E, men min compiler kender dem ikke, når jeg i min kode refererer til eks. PINE.0, at der findes en port E. I headerfilen er der ej heller en port E, hvilket jo forklarer dette, men hvordan kan jeg så tilgå dem? Port A - D er defineret i headerfilen vha. sfrb (Special Function Register Byte). Men hvilken adresse ligger PINE og PORTE på?

--
Mvh.

Tomas
Reply to
Tomas .
Loading thread data ...

Det står i databladet for kredsen:

PINE har adresse $05, DDRE på adresse $06, og PORTE på adresse $07.

M.v.h. Mikael

--
Mikael Ejberg Pedersen
http://www.ejberg.dk
Reply to
Mikael Ejberg Pedersen

Mikael Ejberg Pedersen skrev:

Super. Evt. kunne man jo "bare" tilføje dem i headerfilen, men det vil nok være mere rigtigt, at tage dem med i kildekoden. Hvorfor mon de ikke er indeholdt i headeren?

--
Mvh.

Tomas
Reply to
Tomas .

Ja, det er jo et rigtig godt spørgsmål. Du må hellere spørge dem, der har lavet headerfilen. Vi kan ikke så godt gætte, ikke engang på hvilken compiler du bruger. Men jeg ved da, at de er med i headerfilen til WinAVR (GCC) compileren.

M.v.h. Mikael

--
Mikael Ejberg Pedersen
http://www.ejberg.dk
Reply to
Mikael Ejberg Pedersen

Mikael Ejberg Pedersen skrev:

Sorry - Bruger CodeVision

--
Mvh.

Tomas
Reply to
Tomas .

Hvis jeg så laver et så simpelt program som:

#include

sfrb PINE=0x05; sfrb DDRE=0x06; sfrb PORTE=0x07;

unsigned char z=0;

void main(void) { DDRB = 0xff; while(1) { z = PIND.0; PORTB.0 = z; } }

så går bit 0 på port B høj, når bit 0 på port D går høj; men udskifter jeg z = PIND.0; med z = PINE.0; sker der intet!

Skal man gøre yderligere for at inddrage de 3 bit på port E end de 4 andre porte?

--
Mvh.

Tomas
Reply to
Tomas .

Jeg ved det faktisk ikke. Jeg har ikke selv brugt Mega8515. Men jeg ser noget andet i dit program, der måske kan forklare den manglende port E:

Dette er ikke includefilen for Mega8515. Den er til den gamle AT90S8515, som er udgået for år tilbage. Prøv at finde den rigtige includefil og se om det hjælper. Desværre kender jeg ikke rigtig noget til CodeVision.

M.v.h. Mikael

--
Mikael Ejberg Pedersen
http://www.ejberg.dk
Reply to
Mikael Ejberg Pedersen

Mikael Ejberg Pedersen skrev:

Helt rigtigt. Det er fordi, jeg sidder og udvikler på et STK500, hvori der sidder en 90s8515. Target er dog en ATMega. Men ændring til den korrekte headerfil i mit endelige target resulterer vel ikke i ændring af koden (udover headerfilen) - eller gør den?

--
Mvh.

Tomas
Reply to
Tomas .

Næsten ikke, Atmel bruger kun 10 sider på at forklare forskellen:

formatting link

Reply to
HKJ

Ohooo. Og det er altså således på en 90S8515 at du ikke kan få port E til at virke i første omgang? Det kunne evt. skyldes at port E først kom med i Mega8515 ;-)

M.v.h. Mikael

--
Mikael Ejberg Pedersen
http://www.ejberg.dk
Reply to
Mikael Ejberg Pedersen

STK500,

forskellen:

Tak, skæbne. Den fil er jeg ikke lige stødt på tidligere. Det er da temmelig meget, der skal ændres, må jeg sige.

Takker mange gange :-)

--
Mvh.

Tomas
Reply to
Tomas .

Mikael Ejberg Pedersen skrev:

Det kunne måske have lidt at sige :-)

--
Mvh.

Tomas
Reply to
Tomas .

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.