Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <avr/io.h>
- #include <util/delay.h>
- #include "lcd44780.h"
- uint16_t pomiar(uint8_t kanal); // deklaracja funkcji pomiaru
- int main(void)
- {
- lcd_init(); // inizjalizacja LCD
- ADMUX |= (1<<REFS0); // Nap ref = 2,56 V
- ADCSRA |= (1<<ADEN)|(1<<ADPS1)|(1<<ADPS2); //preskaler 64, ADC ON
- uint16_t wynik;
- uint16_t pm;
- uint8_t cz_d;
- uint8_t cz_u;
- while(1)
- {
- lcd_cls(); // kasowanie zawartości LCD
- pm = pomiar(5); // odczyt wart ADC
- wynik = pm * 25;
- cz_d = wynik/10000;
- cz_u = (wynik/100) % 100;
- lcd_int( cz_d);
- lcd_char('.');
- lcd_int( cz_u );
- lcd_str( "V");
- _delay_ms(1000);
- }
- }
- uint16_t pomiar(uint8_t kanal) // def. funkcji pomiarowej
- {
- ADMUX |= (ADMUX & 0xE8) | kanal; // ustawenie kanału ADC
- ADCSRA |= (1<<ADSC); // start pomiaru
- while( ADCSRA & (1<<ADSC)); // gdy pomiar wykonany
- return ADCW; //zwróć wynik
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement