www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

programiranje ure, atmel m8535
Pojdi na stran 1, 2  Naslednja
 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> AVR, LPC900, x51
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
plutakis
Neznanec
Neznanec



Pridružen-a: Sre 14 Mar 2007 10:07
Prispevkov: 9
Aktiv.: 0.04
Kraj: LJ

PrispevekObjavljeno: Sre Mar 14, 2007 10:40 am    Naslov sporočila:  programiranje ure, atmel m8535 Odgovori s citatom

Pozdravljeni, sem zacetnik v programiranju ATMEL plosce in bi rabil naslednjo pomoc.

PODATKI: ATmega 8535, usb kabel, programiram v ICC kompajlerju.

PROBLEM: Zadal sem si narediti uro, ki bi se prikazovala na stirih 7 segmentnih LED displejih. Uspelo mi je narediti, da rocno premikam ure in minute. Ne vem pa kako bi implementiral realno uro? Ali moram se kaj dokupiti? V navodilih sem bral o oscilatorju, pa o crystal oscilatorju. Ampak to meni ni prevec jasno?

Ali bi mi lahko kdo prosim svetoval, kako to sprogramirati?

Hvala

mitja
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Ch4N93
Član
Član



Pridružen-a: Tor 21 Jun 2005 0:21
Prispevkov: 58
Aktiv.: 0.24
Kraj: Ptuj

PrispevekObjavljeno: Sre Mar 14, 2007 8:17 pm    Naslov sporočila:   Odgovori s citatom

S te povezave si potegni Application Note AVR134: Real-Time Clock using the Asynchronous Timer. Na m8535 vežeš kristal 32768 kHz med pina 28 in 29 (Tosc1 in 2). Ker boš moral uro tudi nastaviti, bo potrebno uporabiti tudi nekaj tipk za nastavitev ure. O asinhronem delovanju timer-ja ter nastavitvi registrov si več preberi v m8535 datasheetu (str. 131).

dodatek: o točnosti takšne ure bi se vsekakor dalo razpravljati, je pa že bilo nekaj govora o tem v tej niti. Sicer boš pa sam videl, kako je s tem.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
plutakis
Neznanec
Neznanec



Pridružen-a: Sre 14 Mar 2007 10:07
Prispevkov: 9
Aktiv.: 0.04
Kraj: LJ

PrispevekObjavljeno: Sre Mar 14, 2007 11:33 pm    Naslov sporočila:   Odgovori s citatom

Hvala za odgovor. Ja ura res ne bo tocna in to je moj glavni problem. Problem je pa tud to, da ce hocem kupt kvarc ga nimam kam prikljucit. A bi se dalo to kako resit?

plutakis
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
igo
Član
Član



Pridružen-a: Sre 11 Okt 2006 19:11
Prispevkov: 3641
Aktiv.: 16.01

PrispevekObjavljeno: Čet Mar 15, 2007 2:59 am    Naslov sporočila:   Odgovori s citatom

Če si vhoda, ki sta namenjena za priklop na kvarc, uporabil za kaj drugega, te verjetno čaka multipleksiranje tipk, da boš porabil manj vhodov.

Osem linij, ki gredo vzporedno na display-e, je lahko multipleksiranih tako, da so (24% časa izhodi na LED1, 1% vhodi), (24% časa izhodi na LED2, 1% vhodi), ...LED3 ... LED4. Vzporedno k LED displayem lahko torej vežeš 8 tipk. Pa še "debounce" je rešen. Med 4x1% časa so tranzistorji zaprti, da display ne sveti. Glede na skupno anodo ali katodo tipke povežeš zaporedno s pull-? upori, da ne motijo linije, kadar display sveti (izhodni pini).

Na podoben način gre tudi 3x4 matrična tipkovnica vzporedno k LCD-ju.
LP,
Igor

_________________
Teoretično je praksa posledica teorije, praktično je pa ravno obratno. (igo 2001)
LP, Igor
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
plutakis
Neznanec
Neznanec



Pridružen-a: Sre 14 Mar 2007 10:07
Prispevkov: 9
Aktiv.: 0.04
Kraj: LJ

PrispevekObjavljeno: Pet Mar 23, 2007 5:40 pm    Naslov sporočila:   Odgovori s citatom

Zdravo, uspel sem priklopit kristal 32768 kHz med pina Tosc1 in 2. Ampak ure mi ne premakne. Ročno lahko stimam minute in ure, da bi mi kristal to pocel mi pa nikakor ne rata. Probal se s kondenzatorji in upori na protobordu, ampak se vedno nic.

Ali kdo ve kaj bi bilo lahko narobe?

Mitja
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Ch4N93
Član
Član



Pridružen-a: Tor 21 Jun 2005 0:21
Prispevkov: 58
Aktiv.: 0.24
Kraj: Ptuj

PrispevekObjavljeno: Sob Mar 24, 2007 2:36 am    Naslov sporočila:   Odgovori s citatom

Prescaler za timer2 imaš nastavljen pravilno (128-)?

Najbolje, da postaš kodo, pa pogledamo kaj bi lahko bilo narobe.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
plutakis
Neznanec
Neznanec



Pridružen-a: Sre 14 Mar 2007 10:07
Prispevkov: 9
Aktiv.: 0.04
Kraj: LJ

PrispevekObjavljeno: Ned Mar 25, 2007 11:59 pm    Naslov sporočila:   Odgovori s citatom

pozdrav,

tako, prescaler sem nastavil na tako vrednost, da bi Casovnik2 moral preplaviti vsako sekundo... vendar se Casovnik sploh ne premakne iz svoje zacetne lege.

Po mojem mnenju sem naredil prakticno vse potrebne korake opisane v application notesu.

prilagam del kode, kjer se nastavi asinhroni casovnik. (while zanka je zakomentirana zato, ker tukaj se program ustavi. torej se tisti register nikoli ne posodobi. kar mi daje slutiti, da je bodisi kristal - ceprav sem kupil dva - ali pa prevajalnik kriv (ali pa moje neznanje) za ta kiks). Da se Casovnik ne premakne nikamor sem pregledal preko UARTA.

Koda:
#define GLOBAL_INTERUPTS_ENABLED      SREG |= (1<<0x08);
#define GLOBAL_INTERUPTS_DISABLED      SREG &= ~(1<<0x08);

#define PRESCALER_SECONDS            0x05
#define RESET_TIMER_2               0x00
#define UPDATE_NOT_FINISHED            0x07

/* *******************************************  */
/* function: init_function                  */
/* Arguments:                            */
/* Return:                                 */
/* Description: init the ports and interupts   */
/* *******************************************  */
VOID init_function(VOID)
{
 int temp0;
 int temp1;
 /* Wait for external clock crystal to stabilize */
 for(temp0 = 0;temp0 < 0x0040; temp0++)
 {
  for(temp1 = 0;temp1<0xFFFF;temp1++);
 }
 
 DDRA = 0x00;   /* PortA as input clock manipulation */
 DDRB = 0xff;   /* PortB as output for values on displays */   
 DDRC = 0x3f;    /* Pin C0-C5 as output*/
 DDRD = 0xff;    /*PortD as output for turning the displays/UART on*/
 
 /*The procedure to properly enable asynchr. in TC2 pp.132*/
 TIMSK &=~((1<<TOIE2)|(1<<OCIE2));/*Disable TC2 interrupt*/
 ASSR |= (1<<AS2);               /*set TC2 to be asynchronous*/
 TCNT2 = RESET_TIMER_2;           /*reset the TC register*/
 TCCR2 = PRESCALER_SECONDS;      /*prescale the timer to overflow every 1s*/
 /*while(ASSR & UPDATE_NOT_FINISHED);*//*wait until TC2 is updated*/
 TransmitString("Update Succeess!!");
 TIMSK |= (1<<TOIE2);            /*set 8-bit Timer/Counter2 Overflow*/
                                /*Interrupt Enable*/
 GLOBAL_INTERUPTS_ENABLED        /*global Interrupt Enable*/
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
plutakis
Neznanec
Neznanec



Pridružen-a: Sre 14 Mar 2007 10:07
Prispevkov: 9
Aktiv.: 0.04
Kraj: LJ

PrispevekObjavljeno: Pon Mar 26, 2007 11:20 am    Naslov sporočila:   Odgovori s citatom

kristal dela super, sem ga pogledal preko oscilatorja.

Torej je bodisi koda bodisi prevajalnik... Morebiti je pa logika okoli kristala znotraj AVRMEGA8535 nedelujoca?


resim eno tezavo, odpre se nebroj drugih.... Wink

lp
mitja
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
igo
Član
Član



Pridružen-a: Sre 11 Okt 2006 19:11
Prispevkov: 3641
Aktiv.: 16.01

PrispevekObjavljeno: Tor Mar 27, 2007 11:34 am    Naslov sporočila:   Odgovori s citatom

Za osnovni preizkus izpravnosti mikrokontrolerja je najbolje opraviti takoimenovani "preizkus utripanja ledice". Pri tem se uporabi kak neskončnokrat preizkušen program z interneta (flashing led Atmega 8535), ki popolnoma zanesljivo deluje brez hroščev in napak.
Če ledica uspešno utripa, je mikrokontroler prestal prvi test - logika okrog kristala Deluje.

Nato se zakoplješ v svoj program in ga razčleniš. Pobriši vse nepotrebne podprograme - samostojno mora delovati Samo tvoja ura, brez upoštevanja tipk, lepo mora sama začeti iz 00:00:00 in opraviti cel krog (po potrebi nastavi register delilnika frekvence, da bo tekla npr 16krat hitreje). Ko bo delala, prekopiraj podprograme v sedanji program s tipkami in delujočim nastavljanjem.
Mora delovati.
Po domače: Program piši po korakih, Samostojne podsklope pa sproti preverjaj. Tako se boš vsakič ukvarjal z nedelujočo malenkostjo, namesto z nedelujočim velikanom.
LP,
Igor

_________________
Teoretično je praksa posledica teorije, praktično je pa ravno obratno. (igo 2001)
LP, Igor
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
Ch4N93
Član
Član



Pridružen-a: Tor 21 Jun 2005 0:21
Prispevkov: 58
Aktiv.: 0.24
Kraj: Ptuj

PrispevekObjavljeno: Tor Mar 27, 2007 7:29 pm    Naslov sporočila:   Odgovori s citatom

Se opravičujem za pozen odziv...

Sam sicer delam v Codevision AVR, pa vendar ne vidim problema v kodi. Vrednosti v registrih zgledajo prave. Kot je napisal že predhodnik, poizkusi z ledicami.
Npr. v prekinitveni rutini se ledica prižge, v glavni zanki pa se ugasne. Tako vidiš če sploh pride do prekinitve. Mogoče dodaš še kakšno zakasnitev, da ni utripanje prehitro.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
micabauc
Član
Član



Pridružen-a: Tor 03 Jun 2003 7:12
Prispevkov: 177
Aktiv.: 0.75
Kraj: Celje

PrispevekObjavljeno: Tor Mar 27, 2007 8:09 pm    Naslov sporočila:   Odgovori s citatom

Tako na pamet:

Verjetno nimaš definirane rutine za interupt in ti procesor pri vsakem interuptu starta od začetka. Se dogaja.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
plutakis
Neznanec
Neznanec



Pridružen-a: Sre 14 Mar 2007 10:07
Prispevkov: 9
Aktiv.: 0.04
Kraj: LJ

PrispevekObjavljeno: Sre Mar 28, 2007 1:39 pm    Naslov sporočila:   Odgovori s citatom

hja,

pomeril sem se z osciloskopom vse skupaj. signal na pinih TOSC1 in TOSC2 plese, frekvenca ni niti priblizno stabilna, kaj sele 32kHz....

do prekinitev tako sploh ne pridem. drugace sem probal prižigati LEDiko, ampak kot rečeno do prekinitve ne pride, ker se časovnik ne premakne.
Seveda se niti ne more, ker ga baše ura.

Pomeril sem še glavno uro in tiktaka lepo pri 8 MHz.

morebiti ni pravi kristal? ampak v specifikacijah nisem našel nobenih posebnih zahtev razen frekvence.

Zdaj sem pa izgubljen.


lp
mitja
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
igo
Član
Član



Pridružen-a: Sre 11 Okt 2006 19:11
Prispevkov: 3641
Aktiv.: 16.01

PrispevekObjavljeno: Sre Mar 28, 2007 1:55 pm    Naslov sporočila:   Odgovori s citatom

Saj dva keramična kondenzatorja 33pF imaš vezana, kajne?
Enega med GND in TOSC1, drugega med GND in TOSC2. Med TOSC1 in TOSC2 pa je priklopljen še kristal.
Takšna je namreč Standardna vezava kristala. Za točne vrednosti kondenzatorčkov si poglej Atmelov datasheet, brez njiju pa ne bo šlo.
LP,
Igor

_________________
Teoretično je praksa posledica teorije, praktično je pa ravno obratno. (igo 2001)
LP, Igor
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
Ch4N93
Član
Član



Pridružen-a: Tor 21 Jun 2005 0:21
Prispevkov: 58
Aktiv.: 0.24
Kraj: Ptuj

PrispevekObjavljeno: Sre Mar 28, 2007 9:55 pm    Naslov sporočila:   Odgovori s citatom

Meni je delalo brez kondenzatorčkov na Mega16.
Poskusi z nabavo kristalov v drugi trgovini kot si kupil te.
Za test lahko priklopiš kakšen drug kristal (lahko tudi z višjo frekvenco) med TOSC1 in TOSC2, in pomeriš, če je frekvenca tedaj stabilna. Tako izločiš problem v AVR-u, oziroma potrdiš pokvarjen kristal 32k.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
plutakis
Neznanec
Neznanec



Pridružen-a: Sre 14 Mar 2007 10:07
Prispevkov: 9
Aktiv.: 0.04
Kraj: LJ

PrispevekObjavljeno: Sre Mar 28, 2007 11:06 pm    Naslov sporočila:   Odgovori s citatom

Citiram:
Saj dva keramična kondenzatorja 33pF imaš vezana, kajne?
Enega med GND in TOSC1, drugega med GND in TOSC2. Med TOSC1 in TOSC2 pa je priklopljen še kristal.
Takšna je namreč Standardna vezava kristala. Za točne vrednosti kondenzatorčkov si poglej Atmelov datasheet, brez njiju pa ne bo šlo.
LP,
Igor


V datasheetu za MEGA8535 piše, da ne potrebuje dodatnih kondenzatorjev. Probal pa sem tudi z njimi (33 pF, 22pF in tudi upori 10 ohmov in 220 ohmov -> našel v application notes za A90....) ni delalo...

Citiram:
Za test lahko priklopiš kakšen drug kristal (lahko tudi z višjo frekvenco) med TOSC1 in TOSC2, in pomeriš, če je frekvenca tedaj stabilna. Tako izločiš problem v AVR-u, oziroma potrdiš pokvarjen kristal 32k.


Probal tudi drugi kristal... mislim da problem ni v kristalu, ker ga je kolega sprobal na svojem -sicer drugem- mikroprocesorju in je bil signal pravilen (f = 32,768 kHz lepa sinusoida).

moja raziskovanja bodo šla v dveh smereh. zvohal sem nekoga ki ima tudi ta mikroprocesor... bom probal s tistim.
drugače bom pa pregledal še assemblersko kodo, ki jo zgenerirra ICC. če je res vpisal v register prave vrednosti za prenastavitev nogic PC6 in PC7 v TOSC1 in TOSC2.

PS: koliko pa more biti izhodna napetost na teh dveh pinih. meni je kazalo okoli 2V.... če slučajno kdo operira s tem podatkom.

če to ne bo delalo, sem ostal pa brez idej.
če pa stvar rata, vam pa javim.

če ima kdo še kakšno idejo in pripombo se pa priporočam.

hvala vsem
lp
mitja
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> AVR, LPC900, x51 Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Pojdi na stran 1, 2  Naslednja
Stran 1 od 2

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 493 dni


Powered by phpBB © 2001, 2005 phpBB Group