| Author |
Message
|
Requan Poziom 11

Joined: 30 Jul 2002 Posts: 66 Location: Kwidzyn
|
#1
14 Feb 2003 12:01 Analizator RC5 w Bascom |
|
|
|
Witam!
W wykladzie 3 (cwiczenie 3:"Analizator kodu RC5") byl napisany program:
Dim Kod As Bit
Dim Command As Byte , Subaddress As Byte
Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.3 , Rs = Portc.2 'konfiguracja wyprowadzeń wyświetlacza LCD
Config Lcd = 16 * 2
$crystal = 8000000
reset Tcon.0
On Int1 Rc5
Enable Interrupts
Cls
Lcd "Waiting for RC5"
Cursor Off
Do
If Kod = 1 Then
Disable Int1
Cls
Lcd "Com: " ; Command ; ",Adr:" ; Subaddress
Kod = 0
Enable Int1
End If
Loop
Rc5:
Getrc5(subaddress , Command)
Kod = 1
Return
Nie da sie go skompilowac bo kompilator(i slusznie) przyczepia sie do linijki: reset Tcon.0
Zamienilem ta linijke na :Config Rc5 = Pind.3,program sie skompilowal ale nie reaguje na piota.Teraz nie wiem czy moje dwa piloty(tv i video) nie pracuja w kodzie RC5 czy to wina programu.Jesli komus dzialal ten program to prosze o uwagi.
pozdrawiam
|
|
| Back to top |
|
 |
Sind Poziom 14

Joined: 03 Feb 2003 Posts: 182
|
#2
16 Feb 2003 23:22 |
|
|
|
jak chcesz to moge ci podeslac w pelni dzialajacy program do analizatora RC5, ale zwroc uwage ze w twoim jest maly blad poniewaz nie zalaczyles przerwania int1, przed Enable Interrupts wpisz Enable int1 i sprobuj wtedy
|
|
| Back to top |
|
 |
Requan Poziom 11

Joined: 30 Jul 2002 Posts: 66 Location: Kwidzyn
|
#3
17 Feb 2003 12:25 |
|
|
|
Witaj!!!
Fakt nie zauwazylem.
Powiem Ci jednak smieszna rzecz-po wlaczeniu przerwania program laduje sie z bledami (napis wyglada tak:"Wai_") nie wiem skad sie to bierze ale nieraz jak cos jest nie tak w programie to mi cuda wychodza.
Jesli mozesz to bardzo bym prosil o ten program: tektrom(malpa)poczta.fm
pozdrawam
|
|
| Back to top |
|
 |
Sind Poziom 14

Joined: 03 Feb 2003 Posts: 182
|
#4
17 Feb 2003 19:59 |
|
|
|
jeszcze jedno pytanie jakiego wyswitlacza uzywasz? chodzi mi o ilosc kolumn i wierszy
|
|
| Back to top |
|
 |
Google

|
#
17 Feb 2003 19:59 |
|
|
|
|
|
| Back to top |
|
 |
Requan Poziom 11

Joined: 30 Jul 2002 Posts: 66 Location: Kwidzyn
|
#5
17 Feb 2003 21:53 |
|
|
|
2*16
|
|
| Back to top |
|
 |
Sind Poziom 14

Joined: 03 Feb 2003 Posts: 182
|
#6
18 Feb 2003 00:23 |
|
|
|
wiesz co opublikuj tu jeszcze raz swoj poprawiony listing, to zobaczymy co sie da zrobic
|
|
| Back to top |
|
 |
Requan Poziom 11

Joined: 30 Jul 2002 Posts: 66 Location: Kwidzyn
|
#7
18 Feb 2003 14:43 |
|
|
|
Dim Kod As Bit
Dim Command As Byte , Subaddress As Byte
Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.3 , Rs = Portc.2 'konfiguracja wyprowadzeń wyświetlacza LCD
Config Lcd = 16 * 2
$crystal = 8000000
$regfile = "8515def.dat"
Config Rc5 = Pind.3
On Int1 Rc5
Enable Int1
Enable Interrupts
Cls
Lcd "Waiting for RC5"
Cursor Off
Do
If Kod = 1 Then
Disable Int1
Cls
Lcd "Com: " ; Command ; ",Adr:" ; Subaddress
Kod = 0
Enable Int1
End If
Loop
Rc5:
Getrc5(subaddress , Command)
Kod = 1
Return
Nie wiem czy nie trzeba zdefiniowac poziomu przerwania
|
|
| Back to top |
|
 |
Veteran Poziom 15

Joined: 28 Oct 2002 Posts: 224 Location: Lodz
|
#8
22 Feb 2003 12:12 |
|
|
|
Mialem ten sam problem. Wszystko jest w porzadku, jezeli korzysta sie z Bascoma wersja: Spetial Edition for Elektronika Praktyczna. W nowszych w miejscu o ktorym mowisz kompilator wskazuje blad, ale nie wiem dlaczego tak sie dzieje.
Bascom w tej wersji jest do sciagniecia ze strony Elektroniki Praktycznej. Powinno dzialac.
Pozdrawiam
|
|
| Back to top |
|
 |
jasiekz Poziom 13

Joined: 26 Feb 2003 Posts: 128 Location: Lubliniec
|
#9
26 Feb 2003 17:15 |
|
|
|
A może byście się zastanowili nad kupnem pełnej wersji bascoma i znikna wasze kłopoty z oprogramowaniem.Jak kupujecie procki to przecież wydatek na pełna wersję nie jest duży w porównaniu do reszty. i mozecie cały czas aktualizowac za darmo.
|
|
| Back to top |
|
 |
Requan Poziom 11

Joined: 30 Jul 2002 Posts: 66 Location: Kwidzyn
|
#10
26 Feb 2003 19:09 |
|
|
|
Dzieki za wszystkie posty.
W programie brakowalo : Reset Gimsk.6 ,bo zapomnialem dodac ze chodzi tu o 8515.
Jeszcze raz dziekuje
|
|
| Back to top |
|
 |
Yoshi_80 Poziom 18

Joined: 10 Jan 2003 Posts: 546 Location: Żary
|
#11
28 Feb 2003 00:48 |
|
|
|
Witam !!!
Podłacze sie do tematu bo też mam mały problem z RC5 . Mianowicie po wywołaniu przerwania wykonywana jest procedura w której wywołuje funkcję Getrc5 (ardes,kod) . I tu się zaczyna lipa ,procesor się zatrzymuje na tym poleceniu. Co prawda traktuję go pilotem który nie nadaje w kodzie RC5 ale to nie powinno mieć znaczenia (w sumie chcialem sprawdzić czy mi odbiornik dobrze działa). Dlaczego on się zawiesza na tej komendzie ,przecież to bez sensu ,żeby on mógł odbierać tylko i wyłacznie w kodzie RC5 ,bo przecież zawsze się może zdarzyć ,że dotrze do odbiornika sygnał z innego pilota .
HELP!
|
|
| Back to top |
|
 |
Google

|
#
28 Feb 2003 00:48 |
|
|
|
|
|
| Back to top |
|
 |
jasiekz Poziom 13

Joined: 26 Feb 2003 Posts: 128 Location: Lubliniec
|
#12
28 Feb 2003 10:43 |
|
|
|
Niektóre komendy w bascomie są komendami oczekującymi na zdarzenie i jeżeli nic nie będzie to tak jakby procesor się zawieszał i się pętli w danej procedurze. Należy w takich przypadkach stosować jakiś timer aby jeżeli coś nie wystąpiło w żądanym przez ciebie czasie to wyszedł z tej procedury. w przerwaniu jak najkrócej napisz program możesz np. w zależności od wartości jakiejś zmiennej wykonać odpowiedni skok do podprogramu i sprawa załatwiona. tylko pilnuj stosu bo te procedury odkładają na niego tymczasowe dane. Czyli przed ta procedurą odczytaj stos i po skoku przepisz go ponownie ale musisz uważać jeżeli masz jeszcze inne przerwania żeby go nie wywalić.
|
|
| Back to top |
|
 |
Google

|
#
28 Feb 2003 10:43 |
|
|
|
|
|
| Back to top |
|
 |
Yoshi_80 Poziom 18

Joined: 10 Jan 2003 Posts: 546 Location: Żary
|
#13
02 Mar 2003 02:00 |
|
|
|
:arrow: jasiekz jakoś nie moge soebie tego wyobrazić z tym timerem. Jeżeli nawet zostanie wywołane przerwanie timera to wykona sie jakaś tam funkja a potem program powróci do tego miejsca gdzie był przed przerwaniem czyli do pętlenia się. Nie wiem jakim sposobem funkcja wywoływana przerwaniem timera miałaby przenosić działanie programu w inne miejsce ... jeżeli nawet no to jeszcze ten stos ...
Jeżeli możesz to powiedz coś więcej na ten temat bo nie wiem na razie jak to napisać.
|
|
| Back to top |
|
 |
jasiekz Poziom 13

Joined: 26 Feb 2003 Posts: 128 Location: Lubliniec
|
#14
02 Mar 2003 12:30 |
|
|
|
...
dim funkcja_zegar as byte
On Ovf1 zegar1 ' adres procedury timera
Enable Ovf1
...
...
zegar1:
if funkcja_zegar=1 then ' jeżeli skok zadany1 to wykonaj skok do labela
rjmp skok1 ' skok1
end if '
if funkcja_zegar=2 then
rjmp skok2
end if
return
Tcnt1h = 110 ' ustawienia zegara
Tcnt1l = 0 '
Tccr1a = 0 '
Tccr1b = 3 '
funkcja_zegar=1
'twoja procedura
skok1:
' dalsza część programu
*******************************************
tylko pamiętaj że maksymalny skok rjmp to 4k pamięci jeżeli twoja procedura jest dalej to musisz wykonać dodatkowy podskok
rjmp dalej i możesz umieścić taką wstawkę w dowolnym miejcu programu
i nie zabuży ci go. tylko zamień w timerze rjmp skok1 na rjmp skok1_1
*******************************************
rjmp dalej
skok1_1:
rjmp skok1
dalej:
i jeżeli jesteś pewny że nie uruchamia ci się w tym czasie inna procedura lub nie przechowujesz czegoś na stosie to mozesz wykasować stos
wstawką Sph = 4 Spl = $5f ( dla 16k flash, dla 8k sph=2 .. dla 4k sph=1 ...)
ja stosuję to w swoich programach i wszystko działa dobrze. (piszę programy na procesory zawodowo)
Jak jeszcze jakieś pytania to pisz :idea:
|
|
| Back to top |
|
 |
Yoshi_80 Poziom 18

Joined: 10 Jan 2003 Posts: 546 Location: Żary
|
#15
02 Mar 2003 13:37 |
|
|
|
Dzięki jasiekz :D .Ja jestem jeszcze początkowym userem bascoma i z tego niewiele rozumiem ale na spokojnie to wezme po wypiciu kawy :) . Na pewno dam znać jak mi coś nie wyjdzie.
|
|
| Back to top |
|
 |
jasiekz Poziom 13

Joined: 26 Feb 2003 Posts: 128 Location: Lubliniec
|
#16
02 Mar 2003 18:39 |
|
|
|
zapomniałem ci napisać że ieżeli używasz procedury sub to lepiej przed uruchomieniem twojej funkcji odczytać stos i po skoku zapisać tę wartość przed dalszą częścią programu abyś mógł wrócić z niej do normalnej pracy programu
...
call procedura 'skok programowy do podprogramu i po wykonaniu powrót
... ' bo jeżeli wykasujesz to nie wróci do tego miejsca
|
|
| Back to top |
|
 |
mario832 Poziom 16

Joined: 18 Jul 2007 Posts: 329 Location: warszawa
|
#17
08 Jul 2008 14:44 Re: Analizator RC5 w Bascom |
|
|
|
Co by trzeba było zmienić w programie by działał pod wyświetlacz z jedną linijką, a konkretnie pod LCD1601 ???
|
|
| Back to top |
|
 |
don diego Poziom 22

Joined: 23 Feb 2006 Posts: 1517 Location: Rumia
|
#18
08 Jul 2008 14:55 Re: Analizator RC5 w Bascom |
|
|
|
Podłączyłeś wyświetlacz i nie działa, tak?
Może zmień tutaj:
| Code: |
| Config Lcd = 16 * 2 |
na
| Code: |
| Config Lcd = 16 * 1 |
|
|
| Back to top |
|
 |
mario832 Poziom 16

Joined: 18 Jul 2007 Posts: 329 Location: warszawa
|
#19
10 Jul 2008 16:53 Re: Analizator RC5 w Bascom |
|
|
|
nie pomogło wyświetla tylko jedną linijkę, a konkretnie non stop 255 ,nie podaje adresu ;( Sprawdzałem podłączenie kilka razy i jest wpożądku. Może cza by jakoś mu kazać żeby najpierw wyświetlił 255, zmazał wartość i potem wyświetlił adres i tak w kółko??? ,nie wiem.
|
|
| Back to top |
|
 |
ZbeeGin Poziom 23

Joined: 22 Apr 2002 Posts: 2625 Location: 50°19'N 18°55'E
|
#20
10 Jul 2008 21:24 Re: Analizator RC5 w Bascom |
|
|
|
| mario832 wrote: |
| Co by trzeba było zmienić w programie by działał pod wyświetlacz z jedną linijką, a konkretnie pod LCD1601 ??? |
| Code: |
| Config LCD = 16 * 1a |
A pisze o tym w helpie.
|
|
| Back to top |
|
 |
mario832 Poziom 16

Joined: 18 Jul 2007 Posts: 329 Location: warszawa
|
#21
11 Jul 2008 14:50 Re: Analizator RC5 w Bascom |
|
|
|
Jeszcze jedno pytanko ,dużo by trzeba zmienić w programie by działał pod ATTINY2313.
|
|
| Back to top |
|
 |
Balu Poziom 24

Joined: 02 Mar 2003 Posts: 4373 Location: Będzin / Gliwice
|
#22
11 Jul 2008 18:39 Re: Analizator RC5 w Bascom |
|
|
|
Trochę by trzeba :P
|
|
| Back to top |
|
 |
mario832 Poziom 16

Joined: 18 Jul 2007 Posts: 329 Location: warszawa
|
#23
15 Jul 2008 17:02 Re: Analizator RC5 w Bascom |
|
|
|
Udało się ,zrobiłem swój pierwszy analizator RC5 ,coprawda na AT89C2051 ,bo było mi łatwiej ,ale zrobiłem ,oto kod:
| Code: |
$crystal = 11059000
$regfile = "89c2051.dat"
Dim Kod As Bit
Dim Command As Byte , Subaddress As Byte
Config Lcd = 16 * 1a
Reset Tcon.0
On Int0 Receiverc5
Enable Int0
Enable Interrupts
Cls
Lcd "Waiting for RC5"
Cursor Off
Do
If Kod = 1 Then
Disable Int0
Cls
Lcd "Com:" ; Command ; ",Adr:" ; Subaddress
Kod = 0
Enable Int0
End If
Loop
Receiverc5:
Getrc5(subaddress , Command)
Kod = 1
Return |
Mam tylko pytanko do ekspertów ;) ,czy to normalne jak naciskam na pilocie przykładowo 5 to adress jest 0 ,potem jeszcze raz 5 to adress 32 i tak przy wszystkich guzikach raz adress ma 0 ,raz 32 ,na przemian to czhyba normalne, no chyba że sie walłem w programie.
Może mi ktoś wyjaśnić dlaczego tak jest z tm 0 i 32??? ;)
|
|
| Back to top |
|
 |
ZbeeGin Poziom 23

Joined: 22 Apr 2002 Posts: 2625 Location: 50°19'N 18°55'E
|
#24
15 Jul 2008 22:21 Re: Analizator RC5 w Bascom |
|
|
|
Kod RC5 przewiduje tzw. Toggle Bit. Jeśli ponownie naciskasz ten sam klawisz to bit 6 zmienia stan na przeciwny by odróżnić, że kod nie jest wysyłany stale tylko jest to kolejne naciśnięcie klawisza.
Dlatego w helpie w przykładach jest napisana instrukcja maskująca ten bit.
|
|
| Back to top |
|
 |
ciapciok Poziom 18

Joined: 05 Apr 2004 Posts: 481 Location: Opole
|
#25
15 Jul 2008 22:23 Re: Analizator RC5 w Bascom |
|
|
|
:arrow: mario832
Jakiego czujnika podczerwieni użyłeś ? Ja próbuję w Bascom AVR z czujnikiem TSOP1730 i nic mi nie wychodzi. W helpie wspominali o TSOP1736(SFH506/7), może to dlatego.
Pozdrawiam
|
|
| Back to top |
|
 |
ZbeeGin Poziom 23

Joined: 22 Apr 2002 Posts: 2625 Location: 50°19'N 18°55'E
|
#26
15 Jul 2008 22:39 Re: Analizator RC5 w Bascom |
|
|
|
Nie ta częstotliwość filtra. Ty masz 30kHz a potrzebna jest 36kHz. Tam są dość strome zbocza.
|
|
| Back to top |
|
 |
Google

|
#
15 Jul 2008 22:39 |
|
|
|
|
|
| Back to top |
|
 |
mario832 Poziom 16

Joined: 18 Jul 2007 Posts: 329 Location: warszawa
|
#27
15 Jul 2008 22:42 Re: Analizator RC5 w Bascom |
|
|
|
Mam TSOP1736, ale tu UWAGA:
on ma na 1 nóżce mase , 2 noga +5V ,a 3 to OUTPUT
(w przeciwieństwie do TFMS5360, gdzie wszędzie widziałem że podłączali go na odwrót ,czyli 2 masa ,a 1 +5V )
Też się na tym przejechałem, pozdrawiam. ;)
|
|
| Back to top |
|
 |
ciapciok Poziom 18

Joined: 05 Apr 2004 Posts: 481 Location: Opole
|
#28
15 Jul 2008 23:12 Re: Analizator RC5 w Bascom |
|
|
|
W sklepie kupiłem TSOP1736, a teraz, po dwóch dniach odczytałem na obudowie co innego. Szkoda, bo straciłem w takim razie 4zł, a czujnika nie wymienie, bo w tym już powyginałem wyprowadzenia.
Ale w tym temacie wwwmajor użył TSOP1730 i mu działało:
http://www.elektroda.pl/rtvforum/topic255537.html
Pozdrawiam
|
|
| Back to top |
|
 |
Balu Poziom 24

Joined: 02 Mar 2003 Posts: 4373 Location: Będzin / Gliwice
|
#29
15 Jul 2008 23:17 Re: Analizator RC5 w Bascom |
|
|
|
Bo to zależy od nośnej w pilocie...To raz, dwa one mają te filtry nie takie znów strome, więc może i coś łapało, ale na pewno nie dzialało to tak jak by można chcieć...
|
|
| Back to top |
|
 |
ciapciok Poziom 18

Joined: 05 Apr 2004 Posts: 481 Location: Opole
|
#30
15 Jul 2008 23:25 Re: Analizator RC5 w Bascom |
|
|
|
Podłączyłem diode LED pod wyjście TSOPa i mruga ona po naciśnięciu przycisku ;) Coś tam odbiera. Jutro zacisnę zęby i z bólem kupię poprawną wersję.
Pozdrawiam
|
|
| Back to top |
|
 |