Ahmet
S38>S85
- Katılım
- 31 Mayıs 2021
- Mesajlar
- 6,083
C++:
byte _10ms = 0;
byte sn = 0;
byte dk = 0;
byte sa = 0;
ISR(TIMER1_COMPA_vect) {
_10ms++;
if (_10ms == 100) {
sn++;
_10ms = 0;
}
if (sn == 60) {
dk++;
sn = 0;
}
if (dk == 60) {
sa++;
dk = 0;
}
if (sa == 99) {
sa = 0;
}
}
unsigned char _7seg[] =
{ //nGFEDCBA
0b11000000,//sıfır/0
0b11111001,//bir/1
0b10100100,//iki/2
0b10110000,//üç/3
0b10011001,//dört/4
//nGFEDCBA
0b10010010,//beş/5
0b10000010,//altı/6
0b11111000,//yedi7
0b10000000,//sekiz8
0b10010000,//dokuz9
0b00000000,//lamba TEST10
0b11111111,//lamba OF11
};
int a = 0;
void setup() {
DDRD = B11111111; //büTÜN D PORTI ÇIKIŞ
DDRB = DDRB | B00001111;//8-9-10-11 çıkış
noInterrupts();
TCCR1A = 0;
TCNT1 = 0;
OCR1A = 16000000 / (100 * 64) - 1;
TCCR1B = (1 << WGM12) | (1 << CS11) | (1 << CS10);
TIMSK1 |= (1 << OCIE1A);
interrupts();
a = 76;
}
void loop() {
int onlarms = _10ms / 10;
int birlerms = _10ms % 10;
int onlars = sn / 10;
int birlers = sn % 10;
//------------1098
PORTB = 0B00000111;//11 iletimde 10 yalıtımda
PORTD = _7seg[onlarms];
delay(9);//tarama ayar
//------------1098
PORTB = 0B00001011;
PORTD = _7seg[birlerms];
delay(5);//tarama ayar
//------------1098
PORTB = 0B00001101;
PORTD = _7seg[onlars];
delay(5);//tarama ayar
//------------1098
PORTB = 0B00001110;
PORTD = _7seg[birlers];
delay(5);//tarama ayar
}