Documente Academic
Documente Profesional
Documente Cultură
PSM
A verificat- I.Calmîcov
2023
Codul pentru AVR Studio :
#include <avr/io.h>
#include <avr/interrupt.h>
void adc_init() {
ADMUX = (0 << REFS1) | (1 << REFS0) | (0 << ADLAR); // AVcc cu condensator la AREF, ajustare la
dreapta
ADCSRA = (1 << ADEN) | (1 << ADIE) | (1 << ADPS2) | (1 << ADPS1) | (1 << ADPS0); // Activează ADC,
activează intreruperile, setează prescaler-ul la 128
ADCSRB = (0 << ADTS2) | (0 << ADTS1) | (0 << ADTS0); // ADC Trigger Source: Free Running Mode
void timer_init() {
TCCR0 = (1 << WGM01) | (0 << WGM00) | (0 << CS02) | (1 << CS01) | (0 << CS00); // Mode: CTC,
Prescaler: 8
}
void ports_init() {
void start_conversion() {
ISR(ADC_vect) {
ISR(TIMER0_COMP_vect) {
int main(void) {
// Programul rulează în modul de intrerupere, deci nu este nevoie de alte instrucțiuni aici
return 0;
Concluzii :
În cadrul acestui laborator, am dezvoltat un program pentru
microcontrollerul Atmega32 care efectuează conversii analog-digital pe
două intrări diferite (ADC0 și ADC1), calculează media valorilor
obținute și transmite rezultatele către porturile PA și PB. Acest laborator
ne-a permis să explorăm utilizarea ADC-ului în Atmega32 și să ne
familiarizăm cu managementul întreruperilor în acest context. Am ajuns,
de asemenea, să înțelegem mai bine modul în care putem prelucra și ieși
datele într-un sistem de microcontroller.