Witam wszystkich !!!
Jakiś czas temu wykonałem sobie zegarek z wyświetlaczami LED. (najprostszy jaki może być)
I problem jest w tym ,że nie odlicza czasu tylko stoi w miejscu pokazuje same zera i nie reaguje na przyciskanie przycisków co jest nie tak?
Oto i program
Poprawiłem tytuł - regulamin p.11.2
[zumek]
Jakiś czas temu wykonałem sobie zegarek z wyświetlaczami LED. (najprostszy jaki może być)
I problem jest w tym ,że nie odlicza czasu tylko stoi w miejscu pokazuje same zera i nie reaguje na przyciskanie przycisków co jest nie tak?
Oto i program
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
const unsigned char cyfry[]={0b00011000,0b11011011,0b10001100,0b10001001,0b01001011,0b00101001,0b00101000,0b10011011,0b00001000,0b00001001};
const unsigned char dziesiatki_godzin=0b11110111;
const unsigned char jednosci_godzin=0b11111011;
const unsigned char dziesiatki_minut=0b11101111;
const unsigned char jednosci_minut=0b11011111;
volatile unsigned char sekundy = 0;
volatile unsigned char godziny = 0;
volatile unsigned char minuty = 0;
SIGNAL(SIG_OVERFLOW2)
{
if (++sekundy==59)
{
sekundy=0;
minuty++;
}
if bit_is_clear(PINB,0)
{
minuty++;
}
if (minuty==59)
{
minuty=0;
godziny++;
}
if bit_is_clear(PINB,1)
{
godziny++;
}
if (godziny==23)
{
godziny=0;
}
}
int main (void)
{
DDRD = 0xFF;
DDRC = 0xFF;
DDRB &= ~_BV(0);
DDRB &= ~_BV(1);
ASSR |= _BV(AS2);
TCCR2 |= _BV(CS20) |_BV(CS22);
TIMSK|=_BV (TOIE2);
sei();
for (;;)
{
PORTD=cyfry[minuty%10];
PORTC=jednosci_minut;
_delay_us (100);
PORTD=cyfry[minuty/10];
PORTC=dziesiatki_minut;
_delay_us (100);
PORTD=cyfry[godziny%10];
PORTC=jednosci_godzin;
_delay_us (100);
PORTD=cyfry[godziny/10];
PORTC=dziesiatki_godzin;
_delay_us (100);
}
return(0);
}
Poprawiłem tytuł - regulamin p.11.2
[zumek]