Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * ATTINY13A - clock 1,2MHz
- * PB2 - vstup z delice 1:10
- * PB3 - TM1637-CLK
- * PB4 - TM1637-DIO
- * pouzita knihovna: https://github.com/lpodkalicki/attiny-tm1637-library
- */
- #define F_CPU 1200000ul
- #include <util/delay.h>
- #include <avr/io.h>
- #include "tm1637/tm1637.h"
- void adc_init();
- uint16_t adc_read();
- int main(void)
- {
- TM1637_init(1/*enable*/, 5/*brightness*/);
- adc_init();
- while (1) {
- uint16_t analog=adc_read();
- uint16_t milivolty = (uint16_t)(uint32_t)(analog * 1000ul / 1023 * 5);
- TM1637_display_digit(0, milivolty/1000);
- TM1637_display_digit(1, milivolty/100 % 10);
- TM1637_display_digit(2, milivolty/10 % 10);
- TM1637_display_digit(3, milivolty % 10);
- _delay_ms(200);
- }
- }
- void adc_init()
- {
- DIDR0 = (1<<ADC1D); // PB2 ADC1 disable Digital
- ADMUX = (1<<MUX0); // PB2 select mux
- ADCSRA = (1<<ADEN)|(1<<ADPS1)|(1<<ADPS0);
- }
- uint16_t adc_read()
- {
- ADCSRA |= (1<<ADSC); // Start konverze
- while(ADCSRA & (1<<ADSC)); // Cekame nez konverze probehne
- return ADC; // vratime vysledek
- }
Add Comment
Please, Sign In to add comment