vineri, 6 iunie 2008

Principiul software



Proiectul se constituie din 4 fisiere:

1. defs.h - care contine define-uri pentru constante

2. funct.h - header cu prototipul functiei de initializare

3. init.c - fisierul contine initializarile pentru diferiti registri.

Noi am folosit portul D ca iesire pentru Led si intrare pentru buton. De asemenea am activat Watchdog-ul care e prescalat la o frecventa de 2048 ori mai mica decat o oscilatorului. De asemenea are nevoie de 2 valori consecutive pentru a se porni.
Initializam si convertorul analog digital care va lucra folosind referinta externa de 5V a montajului si canalul 0 pentru input.

4. main.h - programul principal al proiectului

Avem 3 variabile: g, in care stocam acceleratia (de tip float), adc, ce stocheaza valoarea scoasa de CAN( de tip unsigned int) si buffer, un sir de caractere,pe care il folosim la trecerea din float/int in string pt afisarea pe lcd.

Ledul este initial stins. La un interval de 100ms achizitionam o valoare in volri pe care o convertim numeric. Rezultatul este stocat in adc, convertit in acceleratie si afisat pe linia a 2-a a lcd-ului. Daca aceasta valoare depaseste o valoare de prag (noi am ales 7g), atunci ledul se aprinde, valoare este afisata pe prima linie a lcd-ului si intra intr=o bucla consitionata de apasarea butonului. Dupa apasare, programul revine in bucla normala dupa acel interval de SAMPLE.

Pentru soft am folosit ca bibliografie datasheet-ul lui ATMega16 dar si libraria de help din CVAVR pentru conversia adc, scrierea pe lcd si convertirea din numeric in string.