Hirdetés

2024. május 20., hétfő

Gyorskeresés

Hozzászólások

(#37) Domonkos válasza Domonkos (#36) üzenetére


Domonkos
Ármester

Using the DataHand System is Good for You

A belepesi pont a main() fuggveny lesz.
A belseje ennek igencsak egyszeru, lenyegeben ez csak a peldaprogram egy kicsit strukturaltabban es a timer nelkul:

int
main(void)
{
CLKPR = 0x80, CLKPR = 0;

init_ports();

usb_init();
while (!usb_configured()) {
const double freq_ms = 111;

set_led(NAP_LED, true);
_delay_ms(freq_ms);
set_led(NAP_LED, false);
_delay_ms(freq_ms);
}

greet_user();
run();
}

Az orajelet erdemes a legelejen lerendezni. Ezt a prescaler allitasaval tudjuk megtenni. 16MHz-et kerunk.
Utana a port-okat erdemes egybol inicializalni. Bar ezt is csak egyszer kell megtenni, a kod konnyebben lesz ertheto ha azt egy kulon fuggvenybe szervezzuk ki.
Utana az USB kapcsolatot lehet kiepiteni. Itt mi tul sokat nem rakunk az egeszhez, a peldaprogramhoz kapott konyvtarbol hivogatunk 2 fuggvenyt, amig a kapcsolat ki nem epul. Annyi extra van csak az egeszben, hogy en szeretem latni, hogy eppen a folyamat melyik statuszban van, es mivel elegg kezenfekvonek talaltam erre a feladatra a billentyuzet egyik LED-jet villogtatni, igy amig az USB-re varunk, addig a NAP LED fog villogni ~4.5Hz-en. A kedvenc frekvenciamon. :)
Utana udvozoljuk a juzert a billentyuzet kepessegeinek megfeleloen. Ez a fuggveny egyebkent arra is jo lesz, hogy meg egy napi kontentet adjon a blognak, ha a csomagjaim tovabb kesnek.
Legvegul pedig belepunk a run() fuggvenybe, ami az egesz logikat fogja keretezni. Ez a fuggveny nem ter vissza, addig fut, amig az eszkozt ki nem huzzuk, vagy a Reset gombot meg nem nyomjuk. Ez lesz felelos a tovabbi feladatokert.
Egyszeru. :K

Extra info a tovabbiakhoz:
Bar a kod lenyegi resze az ide mind be lesz masolva, a boilerplate es trivialis dolgokat nem fogom mind kiirni. Ha valakinek megis kell, akkor azokat kulon kerdesre be tudom masolni, de szeretnem ha a blognak ez a resze is konnyen ertheto tudna maradni.
Szoval a kodnak nem feltetlen celja lesz az, hogy "jo" legyen. Elsodlegesen csupan annyi, hogy feltamassza a billencset es hogy jo alapja legyen ha kesobb tovabb szeretnem majd fejleszteni.
A sebesseg, meret, fogyasztas kibalanszolasa az olvaso feladata marad. ;)

Ellenben a kerdesekre a meglevo kodhoz nyitott vagyok!
Esetleg ha van "feature-request", akkor azokat is megfontolom a meg meg nem irt reszekhez, de ha nem lesznek az sem baj. A blog vegere egy 6KRO firmware azert el fog keszulni. :K

[ Szerkesztve ]

Gender of electrical connectors is defined by the pins.

Copyright © 2000-2024 PROHARDVER Informatikai Kft.