Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <avr/io.h>
- #include <avr/interrupt.h>
- #define C_JE_SET PORTD |=(1<<PD7) //bit set
- #define C_JE_RESET PORTD &= ~(1<<PD7) //bit reset
- #define C_DZIE_SET PORTD |=(1<<PD6) //bit set
- #define C_DZIE_RESET PORTD &= ~(1<<PD6) //bit reset
- #define C_SET_SET PORTD |=(1<<PD5) //bit set
- #define C_SET_RESET PORTD &= ~(1<<PD5) //bit reset
- #define C_TYS_SET PORTD |=(1<<PD4) //bit set
- #define C_TYS_RESET PORTD &= ~(1<<PD4) //bit reset
- uint8_t cyfra[10] = { 0b10000001, //cyfra 0
- 0b11110011, //cyfra 1
- 0b01001001, //cyfra 2
- 0b01100001, //cyfra 3
- 0b00110011, //cyfra 4
- 0b00100101, //cyfra 5
- 0b00000101, //cyfra 6
- 0b11110001, //cyfra 7
- 0b00000001, //cyfra 8
- 0b00100001, //cyfra 9
- };
- volatile uint8_t nr_cyfry;
- int main(void){
- DDRA = 0xFF;
- DDRD = (1 << PD7) | (1 << PD6) | (1 << PD5) | (1 << PD4);
- PORTD = 0xF0;
- TCCR0A = (1 << WGM01);
- TCCR0B = (1 << CS00) | (1 < CS02);
- TIMSK0 = (1 << OCIE0A);
- sei();
- OCR0A = 100;
- uint8_t tys, dzie, je;
- uint16_t set;
- uint16_t liczba = 2137;
- for (;;) {
- set = liczba % 1000;
- tys = liczba / 1000;
- dzie = set % 100;
- set = set / 100;
- je = dzie % 10;
- dzie = dzie / 10;
- if (nr_cyfry == 1) {
- C_JE_RESET;
- PORTA = cyfra[je];
- }
- if (nr_cyfry == 3) {
- C_DZIE_RESET;
- PORTA = cyfra[dzie];
- }
- if (nr_cyfry == 5) {
- C_SET_RESET;
- PORTA = cyfra[set];
- }
- if (nr_cyfry == 7) {
- C_TYS_RESET;
- PORTA = cyfra[tys];
- }
- if ((nr_cyfry % 2) == 0) {
- PORTD = 0xF0;
- }
- }
- }
- ISR(TIMER0_COMPA_vect){
- if(++nr_cyfry > 8){
- nr_cyfry = 0;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement