Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define F_CPU 7372800UL
- #include <avr/io.h>
- #include <avr/interrupt.h>
- #include <util/delay.h>
- uint8_t data[4];
- uint8_t i;
- uint8_t j = 0;
- uint8_t brojevi[10] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f};
- void zapis(uint16_t adc) {
- for(i = 0; i < 4; i++) {
- data[3-i] = adc%10;
- adc = adc/10;
- }
- }
- ISR(TIMER0_COMP_vect){
- for(j = 0; j < 4; j++) {
- PORTD = brojevi[data[j]];
- PORTB = _BV(4+j);
- _delay_ms(1);
- }
- }
- int main(void){
- DDRD = 0xff;
- DDRB = 0xf0;
- TCCR0 = _BV(WGM01) | _BV(CS02);
- OCR0 = 150;
- TIMSK = _BV(OCIE0);
- sei();
- for(i = 0 ; i < 4 ; i++){
- data[i] = 0;
- }
- ADMUX = _BV(REFS0); //avcc palimo za sve modeove
- ADCSRA = _BV(ADEN) | _BV(ADPS2) | _BV(ADPS1);
- while (1){
- ADCSRA |= _BV(ADSC); // |= jer smo vec adcsra postavljali na neke vrijednosti pa da se to ne ponisti + rucno pokretanje konverzije --> postavljanje adsca u whileu
- while(!(ADCSRA & _BV(ADIF))); //cekanje dok konverzija ne zavrsi
- zapis(ADC);//saljemo rezultat
- _delay_ms(100);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement