Hodiny s Atmega8
Moderátor: Moderátoři
Zhruba v kostce vím co mi popisuješ a nějak tak jsem to měl na mysli, že nějaký port bude hlídat přítomnost a ne měřit, ale stejně nevím co přesně vepsat do kódu. Ale zkusím se s tím nějak poprat. Ale určitě se budu ještě několikrát ptát. To co je pro mnohé z vás samozřejmost, je pro mě neznámý problém. Jsem na úplném začátku s Céčkem a chci se to naučit, jenže kdo ví jak dlouho mi to bude trvat. Jsem už starší a do hlavy to moc neleze. A na netu toho taky moc není (v češtině).
Dám si to do nějakého simulátoru (třeba Proteus) a budu zkoušet.
Zatím moc dík.
PS: ale nápověda by bodla![Wink ;-)](./images/smilies/icon_wink.gif)
Dám si to do nějakého simulátoru (třeba Proteus) a budu zkoušet.
Zatím moc dík.
PS: ale nápověda by bodla
![Wink ;-)](./images/smilies/icon_wink.gif)
Napájení segmentovek cykluje v přepínači switch(show_t). Takže když si pojmenuješ stav vstupního pinu ext_bat, tak pro nulovou hodnotu následně vynuluješ i port C a nic nebude svítit. To if zařadit do každého kejsu.
[/b]
Kód: Vybrat vše
switch(show_t)
{
case 0: //show minutes
PORTC = 0x04;
if (!ext_bat) {PORTC = 0;}
PORTD = (~segs[min_1]) & ~_BV(_s_dot);
break;
....
Dobrá, tak pin 15 je pro kompilátor PB1. Tak bude snadnější nedělat další definici ext_bat ale rovnou tam napsat:
Kód: Vybrat vše
switch(show_t)
{
case 0: //show minutes
PORTC = 0x04;
if (!PB1) {PORTC = 0;}
PORTD = (~segs[min_1]) & ~_BV(_s_dot);
break;
....
Takhle se stejně segmentovka na okamžik rozsvítí (a kvůli tomu svítí slabě).
Buď přepsat každý case
nebo před celý switch:
Kód: Vybrat vše
switch(show_t)
{
case 0: //show minutes
PORTC = 0x04;
if (!PB1) {PORTC = 0;}
PORTD = (~segs[min_1]) & ~_BV(_s_dot);
break;
....
Kód: Vybrat vše
case 0: //show minutes
if (!PB1) {PORTC = 0;} else {PORTC = 0x04;}
...
Kód: Vybrat vše
if (PB1)
{
switch(show_t)
{
...
}
}
else
{PORTC = 0;}
Je to první řádek a poslední if dole.
Ale zkusím i tvůj nápad.
A díky i Bernardovi, který mi dost napověděl a já už jsem si s tím jen hrál. Je pravda, že umím naprogramovat jen blikající diody, ale tady jsem použil logiku a selský rozum. No a vyšlo to. Teď se do toho pustím hlouběji a budu se učit ať nejsem pořád odkázaný na druhé s každou blbinou.
Takže ještě jednou velký dík chlapi!!!
Ale zkusím i tvůj nápad.
A díky i Bernardovi, který mi dost napověděl a já už jsem si s tím jen hrál. Je pravda, že umím naprogramovat jen blikající diody, ale tady jsem použil logiku a selský rozum. No a vyšlo to. Teď se do toho pustím hlouběji a budu se učit ať nejsem pořád odkázaný na druhé s každou blbinou.
Takže ještě jednou velký dík chlapi!!!