Jestem w trakcie pisania programu, z późniejszym zastosowaniem praktycznym, lecz na razie chciałbym żeby zadziałał na płytce testowej. mianowicie chodzi o to, że do jednego portu podłączamy diodę a do drugiego odbiornik IR. Z pilota RC5 ma odbywać się ściemnianie i rozjaśnianie diody, oraz zapalanie i gaszenie bez konieczności regulacji. Oto kod:
Sciemnianie i rozjaśnianie od 0 do 255 ze skokiem co 17 ( 15 poziomów jasności ) - tak wiem, małoprofesjonalne rozwiązanie, ale grunt, że działa.
Ale problem nie leży tutaj, bo dotąd program działa dobrze.
Chodzi o to, że dodałem opcje gaszenia i zapalania diody za pomocą przycisku, za co odpowiedzialny miał być ten fragment kodu:
Kod:
dla próby podłączyłem inna diodę do innego portu żeby zobaczyć czy da się nią manipulować no i nie działa. Powiedzcie mi co robię źle w tym kodzie bo już brak mi pomysłów?
oczywiście wcześniej było
$regfile = "m32def.dat" ' mega32
$crystal = 16000000
Config Pind.5 = Output 'dioda pod pin 5 portu D
Config Pind.6 = Input ' tsop pod pind.6
Set Portd.6
Config Rc5 = Pind.6
Dim Address As Byte , Command As Byte , Togglebit As Bit ' zmienne
Enable Interrupts ' włączenie przerywan
Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Prescale = 1 ' ustawnienia timera
Pwm1a = 0
Do 'pętla główna
Getrc5(address , Command)
Togglebit = Command.7
Command = Command And &B01111111
Address = 0
Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Prescale = 1
'--------------------------------------
If Address = 0 And Command = 59 Then
Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Disconnect , Prescale = 1
Toggle Portd.5
'gaszenie i zapalanie bez regulacji
If Togglebit = 0 Then
Pwm1a = 0
End If
If Togglebit = 1 Then
Pwm1a = 255
End If
Waitms 100
End If
'---------------------------------------------------------------------
If Pwm1a <> 255 Then
If Address = 0 And Command = 32 Then
Incr Pwm1a ' regulacja w gore
Incr Pwm1a
Incr Pwm1a
Incr Pwm1a
Incr Pwm1a
Incr Pwm1a
Incr Pwm1a
Incr Pwm1a
Incr Pwm1a
Incr Pwm1a
Incr Pwm1a
Incr Pwm1a
Incr Pwm1a
Incr Pwm1a
Incr Pwm1a
Incr Pwm1a
Incr Pwm1a
Waitms 65
End If
End If
If Pwm1a <> 0 Then
If Address = 0 And Command = 33 Then
Decr Pwm1a
Decr Pwm1a 'regulacja w dol
Decr Pwm1a
Decr Pwm1a
Decr Pwm1a
Decr Pwm1a
Decr Pwm1a
Decr Pwm1a
Decr Pwm1a
Decr Pwm1a
Decr Pwm1a
Decr Pwm1a
Decr Pwm1a
Decr Pwm1a
Decr Pwm1a
Decr Pwm1a
Decr Pwm1a
End If
End If
Loop
End
Sciemnianie i rozjaśnianie od 0 do 255 ze skokiem co 17 ( 15 poziomów jasności ) - tak wiem, małoprofesjonalne rozwiązanie, ale grunt, że działa.
Ale problem nie leży tutaj, bo dotąd program działa dobrze.
Chodzi o to, że dodałem opcje gaszenia i zapalania diody za pomocą przycisku, za co odpowiedzialny miał być ten fragment kodu:
Kod:
If Pind.1 = 0 Then
Set Portd.0
End If
dla próby podłączyłem inna diodę do innego portu żeby zobaczyć czy da się nią manipulować no i nie działa. Powiedzcie mi co robię źle w tym kodzie bo już brak mi pomysłów?
oczywiście wcześniej było
Kod:
Config Pind.0 = Output 'druga dioda pod pin 0 portu d
Config Pind.1 = Input
Set Portd.1