ATmega8 l/c metar

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

Moderators: pedja089, stojke369, trax, InTheStillOfTheNight

Post Reply
User avatar
Annunaki
Penjem se :)
Penjem se :)
Posts: 50
Joined: 28-03-2012, 12:32
Location: Pozega/Zagreb

ATmega8 l/c metar

Post by Annunaki »

Pozdrav! Malo sam zapeo kod projekta gdje se igram sa AVR timerima.
Igram se malo sa racunanjem induktiviteta/kapaciteta (odvojeno ali nevažno, ne razlikuje se puno) od mjerene frekvencije preko 8-bitnog countera na Atmega8gdje sam i zapeo.

Naime na ulazu na T0 (8 bitni counter) imam spojen izlaz LC oscilatora (kojeg sam nasao na netu). Pri mjerenju induktiviteta spajam zavojnicu serijski na vec postojecu, a kod kapaciteta paralelno na postojeci kondenzator. Uz poznat induktivitet od 68uH i 1000pF po racunici bih trebao dobiti 610kHz kao frekvenciju bez spojenog nepoznatog kapaciteta/induktiviteta.

No, pri mjerenju s counterom ja dobijem cca. 25kHz(jos mi tu i uljecu neki minusi ali pretpostavljam da je to zbog toga što su mi komponente nabockane na breadboard).

Program (samo dio s frekvencijom) mi je:

Code: Select all

$regfile = "m8def.dat"
$crystal = 8000000
$swstack = 64
$hwstack = 64
$framesize = 64

Config Lcd = 16 * 2
Config Lcdbus = 4
Config Lcdpin = Pin , Db4 = Portd.2 , Db5 = Portd.3 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.1 , Rs = Portd.0
Cursor Off

'Timer0'
Config Timer0 = Counter , Edge = Rising
'Preljev
On Timer0 Timer0_preljev

'Timer1'
Config Timer1 = Timer , Prescale = 256
Const Timer1vrijednost = 34286
Timer1 = Timer1vrijednost
On Timer1 Pulse

Config Portd.4 = Input
Set Portd.4

Dim Preljev As Long , Dosad As Word , Nabrojano As Integer , Ukupno As Single
Preljev = 0

Cls

Start Timer1
Start Timer0
Enable Interrupts
Enable Timer1
Enable Timer0

Do


Loop

Timer0_preljev:
   Incr Preljev
Return

Pulse:
      Stop Timer0
      Stop Timer1
      Dosad = Counter0
      Nabrojano = Preljev * 256
      Ukupno = Dosad + Nabrojano

      Preljev = 0
      Counter0 = 0
      Timer1 = Timer1vrijednost

      Locate 1, 1
      Lcd Ukupno ; "         "

      Start Timer1
      Start Timer0
Return
A shema je http://i39.tinypic.com/280d9z.jpg
Znam da ce mi biti odmaka zbog toga sto je na breadboardu, ali jedno 30tak puta malo mi je sumnjivo.
Može li mala pomoc samo da me uputite gdje griješim kod programa/sheme vec me to pati par dana ne mogu skuziti gdje sam zapeo.

Hvala unaprijed.
User avatar
Kukinjos
Pravi forumaš
Pravi forumaš
Posts: 1724
Joined: 28-03-2012, 18:01
Location: Split

Re: ATmega8 l/c metar

Post by Kukinjos »

Sad sam tek vidio ovaj tvoj post, dokle si došao s projektom? Ja sam pred par godina napravio ovaj LC metar:
http://www.aplomb.nl/TechStuff/Elmcie/Elmcie.html
Radi prilično dobro, iako bi se tu još dalo poigrati.
Gledajući tvoj software uzorkuješ frekvenciju svakih 1,097152 sekundi, što dovodi do manjeg odstupanja u računu frekvencije, ali 30 puta je ipak previše. Jesi li probao dovest neku poznatu frekvenciju iz signal generatora na ulaz T0, pa provjerit točnost mjerenja?
Cezare, star sam i nemoćan, ali poslušaj moj savjet ....
User avatar
Annunaki
Penjem se :)
Penjem se :)
Posts: 50
Joined: 28-03-2012, 12:32
Location: Pozega/Zagreb

Re: ATmega8 l/c metar

Post by Annunaki »

Rješen projekt, malo sam podesio program (problem je bio u krivo deklariranoj varijabli), radi kao zmaj, na 10uH zavojnici mjerim 9.98uH. Planiram si ovoga ljeta malo proširit projekt na l-c-f-esr metar :)
Post Reply