Documente Academic
Documente Profesional
Documente Cultură
Curs 4
2
Porturile ATmega32
Pinii
unui uC pot avea funcții multiple, nu
numai porturi
Funcțiile alternative pot include:
I2C, SPI, USART, PWM, ADC
Când o funcție alternativă este activă pinul
nu mai poate funcționa ca pin al portului
3
Porturile ATmega32
Funcții alternative
4
Porturile ATmega32
Convertor
A/D
5
Porturile ATmega32
Comunicație
SPI
Comparator
analogic
6
Modul timer
Porturile ATmega32
Butoane și comutatoare
Pot apărea oscilații nedorite la comutare/apăsare
Debounce
Se pot filtra cu ajutorul unui filtru RC
Se pot utiliza și filtre software
7
Porturile ATmega32
Butoane și comutatoare – exemplu debounce
ISR (TIMER1_COMPA_vect) { //intrerupere periodica timer la aprox 0,5s
unsigned short newstate;
newstate=PINB&(0b00000001);
if (newstate!=oldstate) {
if (oldstate) {oldstate=newstate; apasat=TRUE;}
else {apasat=FALSE; oldstate=newstate;}
}
else apasat=FALSE;
…………………………………………
} 8
Noțiuni generale întreruperi
Ce este o întrerupere ?
O întrerupere este un eveniment HW sau SW care oprește
uC din execuția codului curent și determină realizarea unei
acțiuni (set de comenzi) prestabilite
9
Noțiuni generale întreruperi
11
Noțiuni generale întreruperi
12
Exemple surse de întrerupere
0 0 SREG
Tabela vectorilor de întreruperi
18
Tabela vectorilor de întreruperi
Adresa
Vector Sursa întrerupere Descriere
FLASH
External Pin, Power-on Reset, Brown-out
1 0x0000 RESET Reset, Watchdog Reset, and JTAG AVR
Reset
2 0x0002 INT0 External Interrupt Request 0
3 0x0004 INT1 External Interrupt Request 1
4 0x0006 INT2 External Interrupt Request 2
5 0x0008 TIMER2 COMP Timer/Counter2 Compare 19Match
Întrebări ?
20