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 

En projekt na Š-Armu (ARM7)

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> ARM arhitektura
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
Odisej
Član
Član



Pridružen-a: Tor 25 Apr 2006 20:24
Prispevkov: 95
Aktiv.: 0.41

PrispevekObjavljeno: Pet Nov 23, 2007 9:59 pm    Naslov sporočila:  En projekt na Š-Armu (ARM7) Odgovori s citatom

Živjo!

Pred kratkim sem se lotil enega programčka. Ideja je: timer in termostat v enem, tako da ko bo tipka pritisnjena bo timer začel odštevat, in termostat bo vklapljal grelec na nastavljeno temperaturo. Priklopljenih pride pet tipk, +- čas, +- nastavljena temperatura in tipka za proženje.
Tako malo za ilustracijo, zdaj pa k vprašanjem: Ker moj temperaturni senzor ne spreminja upornosti (ampak napetost) in ga ne morem priklopiti direktno na AD pretvornik v šarmu. Žal. Tako da sem preko maxim-ic naročil en sample pretvornika MAX6675 (link na datasheet), zdaj pa se moje znanje dopovedovanja šarmu, kaj bi rad od njega, neha. Tako da bi bil zelo vesel pomoči, kako tole spariti s šarmom, ker ne vem čisto, kaj kam priklopit, kako spraviti clock na neko nogico in kako potem to uporabiti v programu...

Sicer sem pa eno temo odprl tudi že tukaj, pa se premikam sem, da ne bo izven konteksta Smile


Hvala za pomoč,

Peter
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
dpavli
Član
Član



Pridružen-a: Čet 25 Jan 2007 9:19
Prispevkov: 121
Aktiv.: 0.54

PrispevekObjavljeno: Sob Nov 24, 2007 8:57 pm    Naslov sporočila:  Re: En projekt na Š-Armu (ARM7) Odgovori s citatom

Odisej je napisal/a:
Ker moj temperaturni senzor ne spreminja upornosti (ampak napetost) in ga ne morem priklopiti direktno na AD pretvornik v šarmu.


AD pretvornik pretvarja napetost v informacijo.

Morda tebe moti, da je na razvojni plati priklopljen trimmer na AD? Trimmer deluje kot napetostni delilnik in AD dobi konec koncev še vedno napetost med 0 in 3.3V tako da je možno dvoje:

1.) jaz nisem razumel tvojega problema
2.) ti preveč kompliciraš in bo zadeva OK Smile

LPD
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
Odisej
Član
Član



Pridružen-a: Tor 25 Apr 2006 20:24
Prispevkov: 95
Aktiv.: 0.41

PrispevekObjavljeno: Sob Nov 24, 2007 9:09 pm    Naslov sporočila:   Odgovori s citatom

Ja, to vem da ad pretvornik pretvarja napetost v neko dvojiško vrednost. Ampak moj problem je, da temperaturni senzor daje prenizko napetost, da bi lahko to priklopil direktno na ad pretvornik (dobim nekje med 1-7mV, v odvisnosti od temperature), zato sem "dobil" za to pretvorbo MAX6675, ki pa sicer že ima vgrajen da pretvornik (polek operacijskega ojačevalnika če prav razumem shemo), katerega izhod bi zdaj rad pripeljal v šarm.
Upam da sem bolj jasno napisal tole? Wink
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
Sokrat
Član
Član



Pridružen-a: Čet 25 Avg 2005 11:00
Prispevkov: 5584
Aktiv.: 23.52

PrispevekObjavljeno: Sob Nov 24, 2007 9:19 pm    Naslov sporočila:   Odgovori s citatom

Odisej, ni nam razumljivo; signale iz MAX6675 prikljuci kamor te je volja, potem pa ze koncno preberi datasheet od MAX6675 (diagrami za komunikacijo so narisani), pa ti bo vse jasno ... ce ti se kar ne bo, potem elektronika res ni zate Wink
_________________
Ka ti bo pa torba ce si kupu kolo ?
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
Odisej
Član
Član



Pridružen-a: Tor 25 Apr 2006 20:24
Prispevkov: 95
Aktiv.: 0.41

PrispevekObjavljeno: Sob Nov 24, 2007 9:34 pm    Naslov sporočila:   Odgovori s citatom

No, gremo pa lepo od začetka: Kje dobim na šarmu clock da ga peljem na tega maxa? Lahko clock speljem na katerokoli nogico (kot _setpindir(X, 1); ali ne?) in kako potem izvedem to v programu?
Sem prebral in razumem da priklop kot tak je simpl - clock na clock, signal na vhod, pa še nekaj na nulo če se prav spomnim...
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
Sokrat
Član
Član



Pridružen-a: Čet 25 Avg 2005 11:00
Prispevkov: 5584
Aktiv.: 23.52

PrispevekObjavljeno: Sob Nov 24, 2007 10:15 pm    Naslov sporočila:   Odgovori s citatom

Na kateremkoli I/O pinu (dovolj je samo output).

V programu to izvedes tocno tako, kakor je narisano v tistem diagramu v datasheetu, ki kaze prenos enega odcitka. Upostevaj zamike (lahko so tudi daljsi, ne smejo pa biti krajsi), pa bo. Potrebujes tri linije, ce me spomin ne vara (clock, data in reset).

_________________
Ka ti bo pa torba ce si kupu kolo ?
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
Odisej
Član
Član



Pridružen-a: Tor 25 Apr 2006 20:24
Prispevkov: 95
Aktiv.: 0.41

PrispevekObjavljeno: Sob Nov 24, 2007 10:40 pm    Naslov sporočila:   Odgovori s citatom

Ja, prav imaš... tri linije pridejo, reset sem spregledal.
Slučajno veš, če je kje kak sample program, kako točno se izvede tako branje? Ker moje znanje programiranja je na dokaj nizkem nivoju, znam praktično tisto, kar smo delali na faksu, torej en semester. Tako da, upam da razumeš, da po nekaj mesecih učenja jezika C, ne morem vedeti vsega, zato so moja vprašanja mogoče nekoliko bizarna. Wink (in ne bi rad odkrival tople vode in izumljal kompromisnih rešitev, če slučajno obstaja neka ustaljena praksa, kako se delajo te stvari)
Če prav razmišljam... clock daš na en pin (se clock pojavi na outputu samo po sebi, ko definiraš pin kot izhodni ali...?), enega bereš in na vsakih 16 ciklov (oziroma več, za vsak slučaj mogoče?) daš reset na 1 in ko gre reset na 0, se sekvenca ponovi... to sekvenco potem bereš in shranjuješ v eno spremenljivko, potem pa preračunaš v temperaturo (oziroma, pretvoriš v desetiško vrednost)

lp
Peter
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
Sokrat
Član
Član



Pridružen-a: Čet 25 Avg 2005 11:00
Prispevkov: 5584
Aktiv.: 23.52

PrispevekObjavljeno: Ned Nov 25, 2007 2:19 am    Naslov sporočila:   Odgovori s citatom

Odisej je napisal/a:
Ja, prav imaš... tri linije pridejo, reset sem spregledal.
Slučajno veš, če je kje kak sample program, kako točno se izvede tako branje?


Seveda vem - sem ga napisal, pa ni bilo prevec tezko. Ce jaz to naredim namesto tebe, bo nesmiselno.

Citiram:
Ker moje znanje programiranja je na dokaj nizkem nivoju, znam praktično tisto, kar smo delali na faksu, torej en semester. Tako da, upam da razumeš, da po nekaj mesecih učenja jezika C, ne morem vedeti vsega, zato so moja vprašanja mogoče nekoliko bizarna. Wink


To so osnove programiranja in to "toplo vodo" bos - tako kot pisanje latinice - moral tudi sam razumeti, sicer ne bo od tebe nikoli nic. Algoritem je sestavljen iz elementarnih blokov (en za zacetek prenosa, preostali za prenos posameznih bitov) in to je vse. Ravno za to gre, da sam pokapiras to stvar - to je vredno najvec.

Citiram:
Če prav razmišljam... clock daš na en pin (se clock pojavi na outputu samo po sebi, ko definiraš pin kot izhodni ali...?), enega bereš in na vsakih 16 ciklov (oziroma več, za vsak slučaj mogoče?) daš reset na 1 in ko gre reset na 0, se sekvenca ponovi... to sekvenco potem bereš in shranjuješ v eno spremenljivko, potem pa preračunaš v temperaturo (oziroma, pretvoriš v desetiško vrednost)


Priblizno tako, kakor razmisljas. Zdaj pocisti ven tvoje cudne ideje ("mogoce") in preberi datasheet in naredi tocno tako, kot tam pise, pa bo delalo. Nic ni "mogoce", vse deluje tocno tako, kot je narisano.

Da lahko nekaj pocnes s stanjem na I/O pinu, mora biti ta najbrz res definiran kot izhod. Analogno, ce zelis prebrati podatek z nekega pina, mora biti definiran kot vhod. Precej ocitno, kajne ? Very Happy

_________________
Ka ti bo pa torba ce si kupu kolo ?
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
Odisej
Član
Član



Pridružen-a: Tor 25 Apr 2006 20:24
Prispevkov: 95
Aktiv.: 0.41

PrispevekObjavljeno: Ned Nov 25, 2007 12:09 pm    Naslov sporočila:   Odgovori s citatom

Očitno ste vsi že tako dolgo v programiranju, da se nihče več ne spomne, kako je dejansko težko na začetku idejo spratiti v matematično formo.
Še vedno se mi ne sanja, kako spraviti clock na output, najboljše kar se spomnim je, da bi ga naredil s timerjem, ki kolikor vem šteje milisekunde, torej dobim v najboljšem primeru 1kHz. Bo to dovolj, ali obstaja kaka druga opcija da bi dobil višjo frekvenco?
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
Domenius
Član
Član



Pridružen-a: Sre 30 Nov 2005 14:15
Prispevkov: 1188
Aktiv.: 5.00
Kraj: Medvode

PrispevekObjavljeno: Ned Nov 25, 2007 12:39 pm    Naslov sporočila:   Odgovori s citatom

Timer šteje urine cikle in ne ms (kje si to dobil?), tako da boš v najboljšem primeru dobil MHz (številka je odvisna od kristala).
_________________
It's electric!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
Odisej
Član
Član



Pridružen-a: Tor 25 Apr 2006 20:24
Prispevkov: 95
Aktiv.: 0.41

PrispevekObjavljeno: Ned Nov 25, 2007 12:49 pm    Naslov sporočila:   Odgovori s citatom

Hm, če na začetku naredim _timerinit(); in potem v spremenljivko vpišem clock() / 1000 dobim sekunde, right?
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
Schatzi
Član
Član



Pridružen-a: Pon 05 Nov 2007 18:58
Prispevkov: 17
Aktiv.: 0.08
Kraj: Tržič

PrispevekObjavljeno: Ned Nov 25, 2007 1:10 pm    Naslov sporočila:   Odgovori s citatom

jp res je
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Benjamin
Član
Član



Pridružen-a: Tor 10 Jul 2007 11:23
Prispevkov: 116
Aktiv.: 0.53
Kraj: Trebnje, Ljubljana

PrispevekObjavljeno: Ned Nov 25, 2007 1:10 pm    Naslov sporočila:   Odgovori s citatom

Predvidevam, da uporabljaš io.h, io.c od predmeta računalništvo II (ali podobnega).
Poglej si ti dve datoteki, in boš našel naslednjo kodo:

Koda:
unsigned long clock(void)
//return number of milliseconds since CPU start
{
  return T0TC;
}

clock() ti torej vrne pretečene ms od zagona programa.

Kaj pa če bi uporabil delay()?
Koda:

IOCLR0 = output_clock;
delay(1); // 1 ms
IOSET0 = output_clock;
delay(1);


Seveda lahko tudi sam spišeš inicializacijo za Timer1 in tako dobiš možno bistveno večjo frekvenco.

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



Pridružen-a: Čet 25 Jan 2007 9:19
Prispevkov: 121
Aktiv.: 0.54

PrispevekObjavljeno: Sre Nov 28, 2007 9:15 am    Naslov sporočila:   Odgovori s citatom

Odisej je napisal/a:
Hm, če na začetku naredim _timerinit(); in potem v spremenljivko vpišem clock() / 1000 dobim sekunde, right?


Ampak to je zato, ker je prescaler nastavljen na takšno vrednost, da se vračajo s clock() funkcijo milisekunde. Lahko na nastaviš tudi na mikrosekunde ali whatever...

Odisej je napisal/a:
Očitno ste vsi že tako dolgo v programiranju, da se nihče več ne spomne, kako je dejansko težko na začetku idejo spratiti v matematično formo.
Še vedno se mi ne sanja, kako spraviti clock na output, najboljše kar se spomnim je, da bi ga naredil s timerjem, ki kolikor vem šteje milisekunde, torej dobim v najboljšem primeru 1kHz. Bo to dovolj, ali obstaja kaka druga opcija da bi dobil višjo frekvenco?


Sem ti že odgovoril, pa tudi Benjamin ti je.

LPD
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> ARM arhitektura Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
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: 6 dni


Powered by phpBB © 2001, 2005 phpBB Group