Mjerač kapaciteta sa ATmega8

Rasprava o AVR mikrokontrolerima, AVR projekti i drugo vezano za AVR...

Moderators: pedja089, stojke369, trax, InTheStillOfTheNight

Post Reply
User avatar
Smjesko
Stariji član
Stariji član
Posts: 4012
Joined: 26-12-2005, 17:12

Mjerač kapaciteta sa ATmega8

Post by Smjesko »

Zamolio bih nekoga tko se zna "boriti" s kodom za atmelove mikrokontrolere da iz "c"-datoteka za ovaj mjerač kapaciteta "proizvede" "hex"-datoteku, jer je to meni tlaka (morao bih čitati literaturu, ali trenutno bolujem od "information overload" sindroma).
Do stranice na kojoj su "c"-datoteke se može doći na ovom linku: http://pontoppidan.info/lars/index.php? ... ter&page=2" onclick="window.open(this.href);return false;

HVALA !
User avatar
trax
Administrator sajta
Administrator sajta
Posts: 3509
Joined: 08-01-2005, 18:04
Location: 75k, BA
Contact:

Re: Mjerač kapaciteta sa ATmega8

Post by trax »

http://www.elektronika.ba/708/mjerac-ka ... a-atmega8/" onclick="window.open(this.href);return false;

Evo sta mi je autor ovog projekta poslao:
Hi Muris
Go ahead, but be aware that the code is kind of old and does not
compile with newer versions of avr-gcc!
Regards
Lars
Znaci, malo prepravke koda ne gine :)
User avatar
Smjesko
Stariji član
Stariji član
Posts: 4012
Joined: 26-12-2005, 17:12

Re: Mjerač kapaciteta sa ATmega8

Post by Smjesko »

A je li spomenuo hoće li on prepravljati taj kod ili očekuje da ga ja prepravim :?: :lol:
User avatar
InTheStillOfTheNight
Odlično uznapredovao
Odlično uznapredovao
Posts: 938
Joined: 01-06-2006, 17:54
Location: Zagreb

Re: Mjerač kapaciteta sa ATmega8

Post by InTheStillOfTheNight »

Ja ti to mogu malo srediti kao code. Naravno da prolazi compile, ali nekako je to lose pisano. Kombinacija assemblera i c-a. Prvo sto je lose u kodu je to sto nisu dobro izvedeni header file-ovi sa ovim #define... To sve treba prebaciti u main.h ili nesto slicno. Druga stvar sto sigurno nece raditi je Interrupt vector jer u novim AVR compilerima se za interrupt navodi ISR(interrupt_source). Mogu ti to ja probati prebaciti, ali cu izmjeniti citav kod i napraviti kako bi trebalo, a kasnije vjerujem da ce biti nekih duhova koje bi trebao sam pronaci u praksi. Ovaj source je pisan za ATMEGA48, ATMEGA88, ATMEGA168, i ATMEGA8. Kada ti ga prebajujem moram znati Target CPU. Radio sam sa sva 4 procesora, a najviše sa ATMEGA168. Ovi 48,88,168 su identični po svemu osim po veličini flasha, rama i eeproma te imaju debug Wire. ATMEGA8 nema Debug wire, ali su registri na drugim adresama i ima dosta razlike oko samog izvornog koda. Za koji procesor to tebi treba?
InTheStillOfTheNight
User avatar
trax
Administrator sajta
Administrator sajta
Posts: 3509
Joined: 08-01-2005, 18:04
Location: 75k, BA
Contact:

Re: Mjerač kapaciteta sa ATmega8

Post by trax »

Pa vjerovatno opet za ATmega8 :)
User avatar
InTheStillOfTheNight
Odlično uznapredovao
Odlično uznapredovao
Posts: 938
Joined: 01-06-2006, 17:54
Location: Zagreb

Re: Mjerač kapaciteta sa ATmega8

Post by InTheStillOfTheNight »

Evo sto trebas promjeniti u njegovom kodu:

Funkcija Init(), file capmeter.c:

Odkomentiraj ovo za mega 8 i zakomentiraj ovo za 48 88 i 168
TIMSK = (1<<TOIE1); //(mega8)
//TIMSK1 = (1<<TOIE1); //(mega48/88/168)

Odkomentiraj ovo:

SFIOR |= (1<<ACME); // Ovako se pali Analog Comparator Multiplexer

Zakomentiraj ovo:

//ADCSRB |= (1<<ACME); // Ovo nece upaliti Analog Comparator Multiplexer i zato komentiramo

//Ovaj dio zakomentiraj: To je disable pull up otpornika na 48:88:168. To nema na atmega8
//DIDR1 |= (1<<AIN1D)|(1<<AIN0D);

I imaš jos jednu grešku u file-u lcd.c
Nigdje nije definirana frekvencija procesora za delay funkcije:

Ja sam je ovako definirao po početku filea lcd.c
#define F_CPU 4000000

Sada mozes napraviti compile bez greske sa novim AVRGCC

Pozdrav
InTheStillOfTheNight
User avatar
InTheStillOfTheNight
Odlično uznapredovao
Odlično uznapredovao
Posts: 938
Joined: 01-06-2006, 17:54
Location: Zagreb

Re: Mjerač kapaciteta sa ATmega8

Post by InTheStillOfTheNight »

Ako ti nesto ne bude jasno samo pitaj... Mislio sam mjenjati program da bude citko napisan, ali onda bi mogao nešto fulati, pa bi ti napravio još više posla. Ove promjene su sigurno tocne, a sad za ostali dio programa, fuseve, i mozda nekakve bug-ove ne znam.
InTheStillOfTheNight
User avatar
InTheStillOfTheNight
Odlično uznapredovao
Odlično uznapredovao
Posts: 938
Joined: 01-06-2006, 17:54
Location: Zagreb

Re: Mjerač kapaciteta sa ATmega8

Post by InTheStillOfTheNight »

trax wrote:Pa vjerovatno opet za ATmega8 :)
Pa da Smjesko samo za taj Mega8 pita, valjda je to jedini atmelov MCU :? :? :? :azdaja:
InTheStillOfTheNight
User avatar
InTheStillOfTheNight
Odlično uznapredovao
Odlično uznapredovao
Posts: 938
Joined: 01-06-2006, 17:54
Location: Zagreb

Re: Mjerač kapaciteta sa ATmega8

Post by InTheStillOfTheNight »

InTheStillOfTheNight wrote: I imaš jos jednu grešku u file-u lcd.c
Nigdje nije definirana frekvencija procesora za delay funkcije:

Ja sam je ovako definirao po početku filea lcd.c
#define F_CPU 4000000

Sada mozes napraviti compile bez greske sa novim AVRGCC

Pozdrav
Ispravak netocnog navoda... Ne da mi se sada probati ovo sto pisem, ali nesto slicno sam imao sranje nedavno sa Delay funkcijom, pa me zahebavao za F_CPU.

Zapravo treba samo u postavkama tamo di definiras procesor navesti frekvenciju rada, i onda je sve ok. To bi bilo znaci profesionalnije rijesenje istog problema, naravno ako radi... :)
Kome se da, nek testira
InTheStillOfTheNight
Post Reply