Hallo Leute,
für eine "Musiklautstärke-8-Led-Anzeige" hab ich bei meinem Atmega32 den ADC auf Free-Run eingestellt. Das ganze allerdings durch Ansprechen der Register und nicht mit dem BASCOM-Config-Geraffel!
Hier mal mein Code:
Nun möchte ich mittels einer (oder auch mehreren xD) logischen Operation die MUX-Bits in ADMUX verändern, jedoch den Rest so belassen.Code:$regfile = "m32def.dat" $crystal = 16000000 $framesize = 80 $hwstack = 80 $swstack = 80 Ddrc = 255 Portc = 255 Ddra.0 = 0 Porta.0 = 0 Admux = &B01100000 Adcsra = &B11100010 Sfior = &B00000000 Dim X As Byte Dim Maxamp As Byte Dim Adchold As Byte Dim Teiler As Byte Dim Count As Word X = 0 Maxamp = 0 Adchold = 0 Teiler = 0 Count = 0 Const Zustande = 8 Do '( While Adch = 0 Incr Count Waitms 1 Wend If Count >= 500 Then Adchold = 0 Count = 0 ') If Adch > Adchold Then Maxamp = Adch Teiler = Maxamp / Zustande X = Adch / Teiler Adchold = Adch Select Case X Case 0 To 1 Portc = &B11111110 Case 1 To 2 Portc = &B11111100 Case 2 To 3 Portc = &B11111000 Case 3 To 4 Portc = &B11110000 Case 4 To 5 Portc = &B11100000 Case 5 To 6 Portc = &B11000000 Case 6 To 7 Portc = &B10000000 Case 7 To 8 Portc = &B00000000 End Select Loop End
Also z.B.:
Admux = &B01100000 --> MUX-Bits: 00000 (Pina.0)
Nun möchte ich auf Pina.1 umschalten:
MUX-Bits: 00001 --> Admux = &B01100001
Wenns geht, sollte ich nur sagen müssen:
"Ich will jetzt auf Pina.x umschalten".
z.B.:
Und dann wollte ich noch wissen, ob ich dann, wenn ich ADMUX verändert habe (bzw. die Mux-Bits), ob ich dann die erste Wandlung verwerfen muss oder ob ich eine bestimmte Zeit warten muss??Code:... ... Dim Mux as Byte ... Mux = 1 'für Pina.1 ... Mux = 2 'für Pina.2 ...
Vielen Dank im Voraus
Gruß
Chris







Zitieren

Lesezeichen