Spis treści |
---|
ADUC831 ADC DAC przetwornik cyfrowo-analogowy i analogowo-cyfrowy |
Funkcja timera2 |
main - inicjalizacja |
Pętla główna |
Definicje funkcji |
Wszystkie strony |
////////////////////////////////////////////////////////////
//Funkcja obsługująca przerwanie timera2
///////////////////////////////////////////////////////////
/*
Z powyższego rysunku widać iż 4 strasze bity danych ADCDATAH nie zawieraja informacji o sporóbkowanym sygnale, dlatego założyłem maske ADCDATAH&=~(11110000) oznaczającą zerowanie 4 najstarszych bitów.
Iloczyn logiczny z maską ~(11110000) gdzie tylda (~) oznacza negacje logiczną otrzymująć 00001111. Dla przypomnienia iloczyn logiczny:
0&0=0
0&1=0
1&0=0
1&1=1
Powyższa tabela zawiera wektor przerwań. Timer2 ma pozycje 6 dlatego przy słowie interrupt znajduje się 6 w poniższym kodzie.
DAC0H i DAC0L to odpowiednio 8 straszych i 8 młodzych bitów danchy przetwornika cyfrowo-analogowego.
*/
void przerwanie() interrupt 6{
ADCDATAH&=~(11110000); //skrucenie 16bitów ADC
//do 12bitów DAC
//rozmiar DAC-12bitów
DAC0H =ADCDATAH; //4 starsze bity DAC
DAC0L =ADCDATAL; //8 młodszych bitów DAC
TL2 = 0xD2; //ustawienie timera2
TH2 = 0xFF; //młodze i starsze 8bitów
//Progaram jest przerywany odkładany na stos i wykonywana jest funkcja przerwania po jej //wykonaniu należy zdjąć danie ze stosu, uzyskujemy to dzięki return.
return;
}
« poprzednia |
---|