Advertisement
Guest User

Untitled

a guest
Jan 20th, 2018
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.06 KB | None | 0 0
  1. #define F_CPU 7372800UL
  2. #include <avr/io.h>
  3. #include <avr/interrupt.h>
  4. #include <util/delay.h>
  5.  
  6. uint8_t data[4];
  7. uint8_t i;
  8. uint8_t j = 0;
  9. uint8_t brojevi[10] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f};
  10.  
  11. void zapis(uint16_t adc) {
  12. for(i = 0; i < 4; i++) {
  13. data[3-i] = adc%10;
  14. adc = adc/10;
  15. }
  16. }
  17.  
  18. ISR(TIMER0_COMP_vect){
  19. for(j = 0; j < 4; j++) {
  20. PORTD = brojevi[data[j]];
  21.  
  22. PORTB = _BV(4+j);
  23. _delay_ms(1);
  24. }
  25. }
  26.  
  27. int main(void){
  28.  
  29. DDRD = 0xff;
  30. DDRB = 0xf0;
  31.  
  32. TCCR0 = _BV(WGM01) | _BV(CS02);
  33. OCR0 = 150;
  34. TIMSK = _BV(OCIE0);
  35. sei();
  36.  
  37. for(i = 0 ; i < 4 ; i++){
  38. data[i] = 0;
  39. }
  40.  
  41. ADMUX = _BV(REFS0); //avcc palimo za sve modeove
  42. ADCSRA = _BV(ADEN) | _BV(ADPS2) | _BV(ADPS1);
  43.  
  44. while (1){
  45. ADCSRA |= _BV(ADSC); // |= jer smo vec adcsra postavljali na neke vrijednosti pa da se to ne ponisti + rucno pokretanje konverzije --> postavljanje adsca u whileu
  46.  
  47. while(!(ADCSRA & _BV(ADIF))); //cekanje dok konverzija ne zavrsi
  48.  
  49. zapis(ADC);//saljemo rezultat
  50.  
  51. _delay_ms(100);
  52. }
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement