Atmega8 - časem řízené přepínání pinů

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Zpráva
Autor
Uživatelský avatar
FHonza
Příspěvky: 1443
Registrován: 20 lis 2012, 00:00
Bydliště: Praha

#16 Příspěvek od FHonza »

To, co je v příloze, sem právě teď vyzkoušel v AVR Studiu 6.1 přeložit. Bez chyb i varování. Je tam doplněno to, co jsem psal výš. Kdyby ti to případně nešlo, tak napiš jaké konkrétní chyby ti to při překladu hlásí.
Přílohy
ebast.zip
(1017 bajtů) Staženo 67 x
Uživatelský avatar
bastlir40
Příspěvky: 463
Registrován: 27 srp 2010, 00:00
Bydliště: Příbram

#17 Příspěvek od bastlir40 »

Mockrát děkuju, vše proběhlo O.K. Jen mi zůstává stále sepnutý PB1. Předpokládám že když budu pomocí tlačítek nastavovat čas, tak i tím po každých 4 hodinách by se měli přepínat PB1 až PB3. Pokud tomu tak není tak budu muset počkat 4 hodiny :-) . Můžu Tě ještě poprosit, pokud to pro tebe není složité, upravit program jako zkušební aby se PB1 až PB3 přepínali např. po jedné minutě abych to mohl odzkoušet? Jinak mockrát děkuji za velkou pomoc a ochotu. Mirek
Zdraví vás Mirek

www.mojeelektro.xf.cz
Uživatelský avatar
FHonza
Příspěvky: 1443
Registrován: 20 lis 2012, 00:00
Bydliště: Praha

#18 Příspěvek od FHonza »

Nevim jestli jsem v programu někde neudělal chybu, vyzkoušel jsem to jenom přeložit. Kontrola kdy přepnout PBx se provádí když minuty přechází z 59 na nulu.

Přesunutí na test při 59 sekundě v obsluze přerušení timeru:

Kód: Vybrat vše

ISR(TIMER1_OVF_vect) 
{
if(++prescale == 255){prescale = 0;sec++;};
if(sec>59){min_1++;sec=0;
  hour_4++;
  switch(hour_4 & 0b1100)
  {
    case 0b0100:
      PORTB = 0b11111011; 
      break;
    case 0b1000:
      PORTB = 0b11110111;
      break;
    case 0b1100:
      PORTB = 0b11111101;
      hour_4 = 0;
      break;
  }

};
if(min_1>9){min_1=0;min_10++;};
if(min_10>5) {min_10=0;hour_1++;};
if(hour_1>9){hour_1=0;hour_10++;};
if(hour_10>1 && hour_1>3){hour_1=0;hour_10=0;};
Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“