Sida 2 av 2

Postat: 12 mars 2007, 11:42:24
av Nisse
Korken -> [skrytvarning] Tja, jag hade högsta betyg på mitt projektarbete när vi läste mikroprocessorteknik i skolan.[/skrytvarning] Vi gjorde ett litet minnesspel som läraren inte kunde sluta spela. Men det var onekligen ett tag sedan och dessutom på en Z80 :lol: Det som är nytt för mig är AVR och framförallt att programmera i C.

Ett utlåtande om boken kommer senare. Har inte kommit längre än till tredje kapitlet och tycker det är lite för tidigt att uttala sig.
Som det verkar så är i alla fall alla exempel i boken helt inriktade på Butterflyn.

Mvh
Nisse

Postat: 12 mars 2007, 20:58:49
av Korken
Kul att du har haft det i skolan!
Själv så är jag helt självlärd. Jag går fel linje för stunden men ska börja läsa µC teknik till hösten. :D
Tror inte de kommer vara några problem, men man vet aldrig.

De roligast är att jag gjorde om Programmering C kursen till en liten egen AVR kurs och då kom µC läraren in och undrade vad jag körde.
Så jag berättade att ja körde AVR med en ISP och så. Och han vart nog lite fast i AVR för han tog och lånade min gammla ISP och några AVR kretsar och nu (ca 4 månader senare) ska skolan byta från PIC till AVR. :D

//Emil

(AVR 1 - PIC 0)

Postat: 18 mars 2007, 21:26:03
av Nisse
Och nu har jag stött på problem. Ett av exemplen i boken trilskas.
Använder Programmers Notepad tillsammans med WinAVR. Får följande felmedelanden:

Kod: Markera allt

> "make.exe" all

-------- begin --------
avr-gcc (GCC) 3.4.6
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


Compiling: PC_Comm.c
avr-gcc -c -mmcu=atmega169 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=PC_Comm.lst  -std=gnu99 -Wp,-M,-MP,-MT,PC_Comm.o,-MF,.dep/PC_Comm.o.d PC_Comm.c -o PC_Comm.o 
PC_Comm.c: In function `isCharAvailable':
PC_Comm.c:46: error: `UCSR0A' undeclared (first use in this function)
PC_Comm.c:46: error: (Each undeclared identifier is reported only once
PC_Comm.c:46: error: for each function it appears in.)
PC_Comm.c: In function `receiveChar':
PC_Comm.c:53: error: `UDR0' undeclared (first use in this function)
PC_Comm.c: In function `sendChar':
PC_Comm.c:61: error: `UDR0' undeclared (first use in this function)
PC_Comm.c:67: error: `UCSR0A' undeclared (first use in this function)
PC_Comm.c: In function `USARTinit':
PC_Comm.c:98: error: `UBRR0H' undeclared (first use in this function)
PC_Comm.c:99: error: `UBRR0L' undeclared (first use in this function)
PC_Comm.c:102: error: `UCSR0A' undeclared (first use in this function)
PC_Comm.c:102: error: `U2X0' undeclared (first use in this function)
PC_Comm.c:105: error: `UCSR0B' undeclared (first use in this function)
PC_Comm.c:105: error: `RXEN0' undeclared (first use in this function)
PC_Comm.c:105: error: `TXEN0' undeclared (first use in this function)
PC_Comm.c:105: error: `RXCIE0' undeclared (first use in this function)
PC_Comm.c:105: error: `UDRIE0' undeclared (first use in this function)
PC_Comm.c:108: error: `UCSR0C' undeclared (first use in this function)
PC_Comm.c:108: error: `UMSEL0' undeclared (first use in this function)
PC_Comm.c:108: error: `UPM00' undeclared (first use in this function)
PC_Comm.c:108: error: `USBS0' undeclared (first use in this function)
PC_Comm.c:108: error: `UCSZ00' undeclared (first use in this function)
PC_Comm.c:108: error: `UCPOL0' undeclared (first use in this function)
make.exe: *** [PC_Comm.o] Error 1

> Process Exit Code: 2
> Time Taken: 00:00
Filerna i fråga är dessa:
http://gullefjun.mine.nu/junk/elektroni ... t/PC_Comm/

Kan någon ge mig en knuff i rätt riktning, eller ännu hellre tala om vad fasiken det är som är fel? Det här med C är tämligen nytt...

Mvh
Nisse

Postat: 18 mars 2007, 21:33:02
av thepirateboy
Prova att lägga in #include <avr/io.h> överst i PC_comm filen.

Sorry, såg att den var med i PC_comm.h

Ta bort de avslutande nollorna på registren den klagar på, då ramlar kompileringen igenom iaf. Antagligen är filerna gjorda för en annan uC.

Postat: 18 mars 2007, 23:34:19
av mke
Du använder antagligen en nyare version av WinAVR. I de nyare versionerna har de ändrat namnen på de flesta registrena. Leta reda på config filen för din processortyp i include katalogen i winavr. Tror den heter iom169.h i ditt fall. Där ser du definitionerna för samtliga register i mega169. Uppdatera sedan din kod med de korrekta registernamnen.

Postat: 19 mars 2007, 22:48:42
av Nisse
*Doooh* Naturligtvis har jag en för ny version av WinAVR :oops:
Installerade den ap-gammla som var med boken och då funkar det.

Ett minus för detta paket hittade jag nu. Databladet för ATmega169 som ligger med på CD-skivan är för nytt för att stämme med den version av WinAVR som är med.. Eller är det kanske tvärtom man skall säga?

Tack för hjälpen!

mvh
Nisse