Moin zusammen!
Ich versuche gerade, den ADC eines ATTiny84 so zu konfigurieren, dass als Referenz die internen 1,1 Volt gewählt werden. In Bascom ging das (erwartungsgemäß) nicht, sowohl Reference = INT als auch Reference = Internal wurden vom Compiler nicht akzeptiert.
Ist ja nicht schlimm - man kennt solche Eigenwilligkeiten des Compilers ja. Ich habe das ADMUX dann selbst gesetzt, und zwar auf 130 bzw. &B10000010 (Eingang 2 und 1,1V als Referenz).
Per LCD lasse ich mir das Register am Programmanfang anzeigen - der Wert wird zunächst tadellos übernommen. Nach dem ersten mal Getadc(2) wird ADMUX aber auf &B00000010 verändert, d.h. ADC2 als Eingang und Vcc als Referenz.
Hier mal der kurze Code:
Warum passiert das - und was kann ich dagegen tun? Vcc als Referenz ist nämlich in diesem Fall keine besonders gute Lösung...Code:$regfile = "attiny84.dat" $crystal = 1000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 , Db7 = Porta.7 , E = Porta.0 , Rs = Porta.1 Initlcd Cursor = Off Admux = &B10000010 Adcsra = &B11000000 Adcsrb = &B00000000 Locate 1,1 LCD ADMUX wait 1 Dim Wert As Word Do Wert = Getadc(2) Locate 1 , 1 Lcd "ADMUX: " ; ADMUX Locate 2 , 1 Lcd Wert Waitms 250 Cls Loop







 
			
			 
					
					
					
						 Zitieren
Zitieren

Lesezeichen