csengeto ora fejlesztese

norbimagan norbimagan at vnet.hu
Fri Mar 19 22:37:46 CET 2004


Szia!


>':' kapcsolgatasa miatt) akkor mar az Atmel is eltudja vegezni az ora
>IC szerepet is. Valahogy ugy kepzelem el hogy SLEEP -ben van foleg es
>csak 1 (vagy 1/2) masodpercenket ebred fel amikor lefut az 'or' rutin
>meg a kijelzo, meg hat ugye ki be kapcsolja a csengot.

Nem ATMEL, (hanem PIC) de az elv lehet azonos:
Ahogy az enyemet csinaltam: az idomerest a timer/counter rendezi.
1/22-ed secenkent ker egy megszakitast, ha jol remlik. A megszakitasi
rutin olyan, hogy a 22-edeik meghivasnal novekszik a sec regiszter.
Annak hatvanadikjanal nullazodik, s no a perc regiszter. Ott is
feltetel, s ha az 60, akkor no az ora regiszter. 24-nel no a nap, ami 7
utan majd a kovetkezonel 1-re all be.
Nalad kell a paros/paratlan heteket is szamlalni, vagyis 14-ig szamolsz,
7 helyett.

Az ebresztest (nalad csengetest) a perc atvitelenel levo feltetel ele
tettem be, vagyis 00 masodpercenkent egyszer kerul meghivasra. Ez is
egyszeru: a FLASH-ben van a 21 elemu ebresztesi tablazat, egy ciklus
letapogatja, s ha van egyezes, akkor beallitja az ebresztesi FLAG-et.
(egyik szabad regiszter egy bitje) A megszakitas onmagaban nem ebreszt,
arra nincs ideje.

A foprogram multiplexeli a kijelzot allandoan egy frissito rutint
hivogatva a hurokban. Ugyanez adja az ebreszto hangot is, ha az
ebresztes flag be van billentve. (800Hz jott ki, kisebb mint 1MIPS
sebessegnel nalam /3,2768Mhz-rol ment a PIC/)

>Csak a nyomogombokkal nem tudok mit csinalni igy hirteleneben
>(univerzalisra gondoltam 4x4 matrixba szervezve, aztanmajd meglatom
>mennyi kell bele), mert ugyebar azokat gyakrabban kell figyelni.
>Van egy elkepzelesem miszerint mondjuk 100ms -onkent ebredne a SLEEP
>-bol a kontroller es ilyenkor figyelne a gombokat, es csak minden 5.
>ebredeskor foglalkozna a kijelzessel ......

A gombokkal jot szivtam anno. Szerintem a teljes beallitasra elegendo a
3 gomb, felesleges tulvarialni. Gyakorlatilag van egy jobbra-balra
nyilad, meg egy entered. Sima menurendszer, mint a PC-nel megszokhattad.
Ezzel minden beallithato, raadasul pillanatod alatt kezelheto, sotetben
is. Szerintem ennel jobb nincs. A sokszaz gomb inkabb megzavarja, mint
segiti az embert.

A kezeles prellmentesitessel tortent ugy, hogy a kijelzot multiplexelo
rutinba ezt is beleszottem. (Elvegre ha megy a kijelzes, akkor ertelmes
a gombokat nyomogatni. :))) )

Ha jol remlik, akkor figyelem a gombok allapotat, (eltarolom egy
regiszterbe) s csokkentek egy szamlalot, minden egyes kijelzofrissites
alkalmaval. Ha a gombok erteke a ciklusba belepes es kilepes kozott nem
valtozik, (mindig hasonlitok az eltarolttal) akkor ezt fogom eltarolni.
A multiplex rutint hivja a menu rutin. A menu rutin azt nezi, hogy a
billentyut tarolo valtozo erteke megvaltozott -e egy segedveltozo
ertekevel.
Ha igen, akkor nem tesz semmit. Ha nem, akkor tudja, lenyomtak valamit.
Aszerint fog erre reagalni, hogy a menurendszer melyik menupontjaban es
mit, akartunk aktivalni. Mielott azonban barmi mast tenne, a beolvasott
gombot elmenti a ebbe a segedvaltozoba. Igy mind az elengedest, mind a
lenyomast tudom esemenykent kezelni.

>Azon is gondolkozom hogy RS232 helyett pl. USB -vel ossze lehetne
>kotni egy PC-vel. Ujabb hordozhato kisgepeken mar nincs RS232, viszont

Ezek a dolgok mar ATMEL specifikusak, ehhez nem ertek.

>igy elkomplikalom ezt  dolgot, megis tegyek bele egy ora IC -t es arra
>bizzam az idot, vagy pl. egy AtMega8 igysem ugysem fog megfelelni egy
>ilyesminek ..... (nem a Mega128 -re gondoltam ide, vagy az sem lenne
>tul nagy?)

Szerintem pazarlas ora IC-t tenni egy olyan mikrovezerlos berendezesbe,
aminek mas dolga sincs, mint az idot mutatni, a kijelzot, tasztot
kezelni, meg az ebresztesi tablazatot nyalazgatni. Ha egy 3,2768Mhz-es
PIC 16C84-esbe ez belefert, akkor egy korszerubb, izmosabb ATMEL-ben ez
nem jelenthet szerintem gondot. 
Ha sorozatban gyartod, akkor vegkepp ezt mondom. Ha egyedi darab lesz,
akkor belefer, ha ettol jobban erzed magad. A kodod nem lesz sokkal
egyszerubb szerintem, mint a fentiekbol latod, az orat leprogramozni par
sor csupan akarmiben.
A fogyasztas se szempont a mai kontrollerekkel. Iskolai ora eseten meg
aramszunet idejere kell csak a vekkernek mennie, ami nem igenyel
hatalmas akkut. A kijelzot persze nem a teleprol taplalnam, hacsak nem
az LCD-rol van szo.

>- par univerzalis ki es bement (pl. iskolaradio, riaszto, .....)
>- halozatkimaradas eseten sajat akku, ilyenkor nem csenget :)

A halozatkimaradast erdemes lenne logolni, ha marad a vezerlodnek szabad
kapacitasa. Neha jol jon, ha egy hetre visszamenoleg tudjuk, mikor ment
el az aram, illetve jott vissza. Ez a luxus, messze nem letkerdes, csak
hasznos aprosag, ha ugyis beleferne. :)

>- kisero orak csatlakozasanak lehetosege ???????
>    ( ez hogy szokott megoldva lenni? milyenek ott a jelek?)
>- akinek van otlete irjon nekem mi kellhet meg.....

Kisero orakat szerintem felesleges csatlakoztatni, mert ez ugyis mindent
vigyorogva elvisz. 
Ha viszont orachipen gondolkodtal: Esetleg atomora szinkron lehetoseget
tehetnel bele. Annal nincs bosszantobb dolog, amikor pontatlan a
csengeto vekker. Ha egy DCF77-es vevo van benne, akkor az aramszunet se
gond, elem se kellene bele! Ugyanis az ebresztesi adatok a flash-ben
vannak, az idot meg a DCF77-es megmondja bekapcsolaskor. Gyakorlatilag
semmi se kellene allitani rajta. Meg merem kockaztatni, hogy egyetlen
gomb se kellene ra, csak egy csatlakozo a PC-hez. Talan RS232, vagy USB
helyett mezei parallel illeszto is megteszi egy laplink kabellel. Igy
meg olcsobb, egyszerubb lehet, szintillesztesi gondod sincs. (Mar, ha
5V-os az ATMEL-ed. :) )

Ui.: Bocs ha zoldet irtam, regen nem foglalkoztam mar a dologgal.

Udv.:
         Norbi.




More information about the Elektro mailing list