Witam.
Czy ktoś mógłby mi napisać program do Atmega8, powodujący, że po naciśnięciu przycisku na pilocie zapali się dioda.
Ja próbowałem przerobić sampla z bascoma, ale nic mi z tego nie wychodziło.
Sensor jest raczej sprawny, gdy podłączyłem diodę do wyjścia i "+" odbiornik działał (po naciśnięciu przycisku na pilocie dioda miga), natomiast Uc tego nie wykrywa, więc sądzę, że to kwestia programu..
Próbowałem dodawać oporniki, kondensatory, siedziałem cały dzień i nadal nic z tego nie wyszło.
Nie wiem jak poradzić sobie z Config PXXXX.X = output/input, nie wiem kiedy można używać PORT a kiedy PIN, kiedy należy wpisać INPUT, a kiedy nie.
Będę baaaardzo wdzięczny za pomoc, jestem praktycznie zielony w BASCOMIE, szczególnie w AVR....
P.s
czy sensor podczerwieni musi być podpięty do jakiegoś konkretnego portu (np. portd.2 - INT0)czy wszystko jedno.
Diodę chciałem podłączy do PORTB.0.
Dziękuje za wszelkie uwagi.
Dodano po 1 [minuty]:
A i kiedyś używałem tego odbiornika w bascom 8051 i działało bez problemu.
'---------------------------------------------------------------------------------------------------
'
' RC5_PWM.bas
'
' Zkoušky programování příjmu RC5 a využití PWM
' Tlačítky na DO ovládáme intenzitu podsvícení. Můžeme je vypnout/zapnout.
'
'---------------------------------------------------------------------------------------------------
'$sim 'jen pro simulaci
$regfile = "attiny2313.dat" 'Soubor s deklaracemi
$crystal = 10000000 'Kmitočet krystalu v Hz
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.6 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.1 , Rs = Portb.0
Cursor Off 'vypni kurzor
'Nastavení čítače:
Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Up
'Config Timer0 = Timer , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Up
Dim Address As Byte , Command As Byte
Dim Podsviceni As Byte
Dim Procents As Word
Dim Dels As Word
Dim Kontrast As Byte
Dim Procentk As Word
Dim Delk As Word
Config Portb.2 = Output
Config Portd.5 = Output
Config Portb.4 = Output 'kontrast
Config Portb.3 = Output 'podsvícení
Config Pind.2 = Input 'RC5
Config Rc5 = Pind.2
Enable Interrupts 'povol všechna přerušení
'''''''''''''''''''''''''''' HLAVNI PROGRAM '''''''''''''''''''''''''''''''''''
Podsviceni = 150 'Počáteční nastavení
Pwm1a = Podsviceni
Kontrast = 200
Pwm1b = Kontrast
Uvod:
Cls
Lcd "Zkouska rizeni"
Lowerline
Lcd "podsv. a kontr."
Do 'hlavní smyčka
Getrc5(address , Command)
If Address < 255 Then 'Dokud nestisknu tlacitko na DO
Cls
Lcd "psvic kontr RC5"
If Procents < 100 Then
Lowerline
Lcd " " ; Procents ; " %"
Else
Locate 2 , 1
Lcd Procents ; " %"
End If
If Procentk < 100 Then
Locate 2 , 7
Lcd " " ; Procentk ; " %"
Else
Locate 2 , 7
Lcd Procentk ; " %"
End If
Locate 2 , 14
Lcd Command
If Command = 17 Or Command = 145 Then '17 a 145 jsou kódy RC5 pro "volume-"
Podsviceni = Podsviceni - 5 'Podsvícení se snižuje
If Podsviceni < 5 Then Podsviceni = 5
Pwm1a = Podsviceni
' Pwm0a = Podsviceni
End If
If Command = 16 Or Command = 144 Then '16 a 144 jsou kódy RC5 pro "volume+"
Podsviceni = Podsviceni + 5 'Podsvícení se zvyšuje
If Podsviceni > 250 Then Podsviceni = 250
Pwm1a = Podsviceni
End If
If Command = 33 Or Command = 161 Then '33 a 161 jsou kódy RC5 pro "P-"
Kontrast = Kontrast - 5 'Kontrast se snižuje
If Kontrast < 120 Then Kontrast = 120
Pwm1b = Kontrast
End If
If Command = 32 Or Command = 160 Then '32 a 160 jsou kódy RC5 pro "P+"
Kontrast = Kontrast + 5 'Kontrast se zvyšuje
If Kontrast > 250 Then Kontrast = 250
Pwm1b = Kontrast
End If
If Command = 12 Or Command = 140 Then Pwm1a = 0 '12 a 140 jsou kódy RC5 pro "ON/OFF"
' If Pwm1a = Podsviceni Then 'Podle toho jestli podsvícení je/není zapnuto
' Pwm1a = 0 'podsvícení vypne
' Else 'nebo
' Pwm1a = Podsviceni 'zapne
' End If
' End If
If Command = 38 Or Command = 166 Then Pwm1a = Podsviceni '38 a 166 jsou kódy RC5 pro "časovač"
If Command = 15 Or Command = 143 Then Goto Uvod '15 a 143 jsou kódy RC pro zobracení čísla kanálu
'zobrazí úvodní nápis na displeji
Dels = Podsviceni * 100 'malý výpočet pro zobrazování % Podsvícení
Procents = Dels / 250
Delk = Kontrast * 100 'a pro zobrazování % Kontrast
Procentk = Delk / 250
End If
Loop 'konec hlavní smyčky
'''''''''''''''''''''''''''' KONEC HLAVNIHO PROGRAMU ''''''''''''''''''''''''''
End
już w reakcji na konkretne przyciski pilota reguluje jas i kontrast dołączonego do uC LCD wyświetlacza.
a trzeci:
'---------------------------------------------------------------------------------------------------
'
' RC5_PWM0.bas
'
' Zkoušky programování příjmu RC5 a využití PWM
' Tlačítky na DO ovládáme intenzitu podsvícení. Můžeme je vypnout/zapnout.
'
'---------------------------------------------------------------------------------------------------
'$sim 'jen pro simulaci
$regfile = "attiny2313.dat" 'Soubor s deklaracemi
$crystal = 10000000 'Kmitočet krystalu v Hz
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.6 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.1 , Rs = Portb.0
Cursor Off 'vypni kurzor
'Nastavení čítače:
'Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Up
Config Timer0 = Timer , Prescale = 1 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up
Dim Address As Byte , Command As Byte
Dim Podsviceni As Byte
Dim Kontrast As Byte
Config Portb.2 = Output
Config Portd.5 = Output
Config Pind.2 = Input 'RC5
Config Rc5 = Pind.2
Enable Interrupts 'povol všechna přerušení
'''''''''''''''''''''''''''' HLAVNI PROGRAM '''''''''''''''''''''''''''''''''''
Podsviceni = 125 'Počáteční nastavení
Pwm0a = Podsviceni
Kontrast = 125
Pwm0b = Kontrast
Uvod:
Cls
Lcd "Zkouska rizeni"
Lowerline
Lcd "podsv. a kontr."
Do 'hlavní smyčka
Getrc5(address , Command)
If Address < 255 Then 'Dokud nestisknu tlacitko na DO
Cls
Lcd "psvic kontr RC5"
If Podsviceni < 100 Then
Lowerline
Lcd " " ; Podsviceni
Else
Locate 2 , 1
Lcd Podsviceni ;
End If
If Kontrast < 100 Then
Locate 2 , 7
Lcd " " ; Kontrast ;
Else
Locate 2 , 7
Lcd Kontrast ;
End If
Locate 2 , 14
Lcd Command
If Command = 17 Or Command = 145 Then '17 a 145 jsou kódy RC5 pro "volume-"
Podsviceni = Podsviceni - 5 'Podsvícení se snižuje
If Podsviceni < 5 Then Podsviceni = 5
Pwm0a = Podsviceni
End If
If Command = 16 Or Command = 144 Then '16 a 144 jsou kódy RC5 pro "volume+"
Podsviceni = Podsviceni + 5 'Podsvícení se zvyšuje
If Podsviceni > 250 Then Podsviceni = 250
Pwm0a = Podsviceni
End If
If Command = 33 Or Command = 161 Then '33 a 161 jsou kódy RC5 pro "P-"
Kontrast = Kontrast - 5 'Kontrast se snižuje
If Kontrast < 5 Then Kontrast = 5
Pwm0b = Kontrast
End If
If Command = 32 Or Command = 160 Then '32 a 160 jsou kódy RC5 pro "P+"
Kontrast = Kontrast + 5 'Kontrast se zvyšuje
If Kontrast > 250 Then Kontrast = 250
Pwm0b = Kontrast
End If
If Command = 12 Or Command = 140 Then Pwm0a = 0 '12 a 140 jsou kódy RC5 pro "ON/OFF"
'Podsvícení vypne
If Command = 38 Or Command = 166 Then Pwm0a = Podsviceni '38 a 166 jsou kódy RC5 pro "časovač"
'Podsvícení zapne
If Command = 15 Or Command = 143 Then Goto Uvod '15 a 143 jsou kódy RC pro zobracení čísla kanálu
'zobrazí úvodní nápis na displeji
End If
Loop 'konec hlavní smyčky
'''''''''''''''''''''''''''' KONEC HLAVNIHO PROGRAMU ''''''''''''''''''''''''''
End
Prawie to samo, ale PWM0.
Ani jeden program nie ma żadnego praktycznego użycia. Powstały bym sprawdził czy potrafię Komentarze są po czesku, nie chce mi się je tłumaczyć
Nie tylko się może ciężko kopiować do kompilatora, wiesz?
<ściana>
Zgoda ,ale trochę wysiłku z przepisaniem i to bardzo krótkiego programu nikomu nie zaszkodzi.A niektórzy maja za złe że zamieszcza się gotowce.Bez urazy kolego dawid512.
Jakby autor tematu poczytal helpa to by wyklepał taki kod w paręnaście minut i coś by z tego wiedział a tal to tylko Ctrl+C i Ctrl+V. Lenistwo...
Tak po za tym ten gotowiec nie robi tego co chce autor tematu...