Witam.
Po zakończonym projekcie związanym z PWM wypadało się zabrać za temat ADC... tak też zrobiłem. Jednak przed rozpoczęciem cyklu poradników p. Mirosława chciałbym się dowiedzieć dlaczego powinien właśnie tak wyglądać zapis ustawienia wybranego kanału ADC w rejestrze ADMUX?
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Zapis pochodzi z tematu ADC z niebieskiej książki, dokładniej w funkcji pomiar(kanal). Zastanawia mnie jedno, choć operacje i co "ogólnie" tu się dzieje rozumiem, to jednak nie wiem czemu ma służyć zapis ADMUX & 0xF8 ?
0xF8 w zapisie systemu binarnego wygląda następująco 0b11111000, natomiast rejestr ADMUX jest zależny od wcześniejszych operacji na tym rejestrze. Operacja ta ma służyć sprawdzeniu czy aby na pewno nie ma wysokiego stanu na 5 starszych bitach rejestru ADMUX, który jest 10 bitowy? Prosiłbym o wytłumaczenie tego w sposób zrozumiały dla początkującego programisty.
PS. Przepraszam za banalne pytania, które mogą doprowadzić do gorączki, jednak wielu "samouków" napotkało zapewne kiedyś takie banalne, z dzisiejszej perspektywy problemy.
Po namyśle jeszcze jedno małe pytanko:
Dlaczego w programie mamy zapis włączenia modułu i ustawienia preskalera dot. rejestru ADCSR, skoro (chyba błędnie) wyszukałem w nocie katalogowej tylko rejestr ADCSRA? - dane dla ATmega32.