Hallo!
habe jetzt so ein Code gebastelt!
ADC String und Array!
Denn ADC mit 8-bit
Von 0 bis 255 geht!
Aber 255 bis 0 geht nicht, anstatt wieder 000 anzuzeigen ist denn 110.
Bitte um Hilfe!
Gruß
Sucharik
habe jetzt so ein Code gebastelt!
ADC String und Array!
Denn ADC mit 8-bit
Von 0 bis 255 geht!
Aber 255 bis 0 geht nicht, anstatt wieder 000 anzuzeigen ist denn 110.
Bitte um Hilfe!
Code:
$regfile = "m8def.dat"
$crystal = 8000000 'Intern
$hwstack = 32
$swstack = 40
$framesize = 40
Ddrb = &B11111111 ' PB6...PB0 7-Segment G.F.E.D.C.B.A
Portb = 255
Ddrc = 00000000
Ddrd = &B11100000 ' PD7...PD5 Ausgang Ziffer_1 ....Ziffer_3
'===========ADC Config
Admux = &B01111000
' mux Bits7+6=01:Ref intern
' mux Bit5=1: LeftAdjust, nur 8 Bit in ADCH
' mux Bit3..0: ADC Kanal wa"hlen
Adcsra = &B11101111
' sra Bit7=1:AdcAn Bit6=1:Start Bit5=1:Frei
' sra Bit3=0:InterruptAn Bit2..0=010: AvrClock/4
'==========Variablen
Dim Sensor As Byte ' Sensor an ADC(0)
Dim Sensor_str As String * 3 'Sensor_Str 3 Ziffern
Dim Sensor_ar(4) As Byte
Dim Ziffer_1 As Byte
Dim Ziffer_2 As Byte
Dim Ziffer_3 As Byte
Do
Sensor = Adch ' ADC 8bit
Sensor_str = Str(sensor) ' String
Str2digits Sensor_str , Sensor_ar(1) 'Array
For Ziffer_1 = 5 To 5 'Ziffer_1 PD5
Select Case Sensor_ar(4) ' Array ERSTE Stelle ADC
Case 0 : Portb = &B1000000 '0
Case 1 : Portb = &B1111001 '1
Case 2 : Portb = &B0100100 '2
Case 3 : Portb = &B0110000 '3
Case 4 : Portb = &B0011001 '4
Case 5 : Portb = &B0010010 '5
Case 6 : Portb = &B0000010 '6
Case 7 : Portb = &B1111000 '7
Case 8 : Portb = &B0000000 '8
Case 9 : Portb = &B0010000 '9
End Select
Portd.ziffer_1 = 1 'PD5 An
Waitus 500
Portd.ziffer_1 = 0 'PD5 Aus
Next
For Ziffer_2 = 6 To 6
Select Case Sensor_ar(3) 'Array ZWEITE Stelle von ADC
Case 0 : Portb = &B1000000
Case 1 : Portb = &B1111001
Case 2 : Portb = &B0100100
Case 3 : Portb = &B0110000
Case 4 : Portb = &B0011001
Case 5 : Portb = &B0010010
Case 6 : Portb = &B0000010
Case 7 : Portb = &B1111000
Case 8 : Portb = &B0000000
Case 9 : Portb = &B0010000
End Select
Portd.ziffer_2 = 1 'PD6 An
Waitus 500
Portd.ziffer_2 = 0 'PD6 Aus
Next
For Ziffer_3 = 7 To 7
Select Case Sensor_ar(2) 'Array DRITE Stelle von ADC
Case 0 : Portb = &B1000000
Case 1 : Portb = &B1111001
Case 2 : Portb = &B0100100
Case 3 : Portb = &B0110000
Case 4 : Portb = &B0011001
Case 5 : Portb = &B0010010
Case 6 : Portb = &B0000010
Case 7 : Portb = &B1111000
Case 8 : Portb = &B0000000
Case 9 : Portb = &B0010000
End Select
Portd.ziffer_3 = 1 'PD7 An
Waitus 500
Portd.ziffer_3 = 0 'PD7 Aus
Next
Loop
End
Gruß
Sucharik