Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 3 gru 2024, o 07:02


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 30 ] 
Autor Wiadomość
PostNapisane: 19 lis 2012, o 01:01 
Offline
Użytkownik

Dołączył(a): 18 mar 2012
Posty: 55
Pomógł: 0

Witam! Mój problem jest następujący: Zrobiłem odbiornik IR na atmedze 8 i pojawił się problem przy odbiorze danych z pilota, gdyż w momencie przyciśnięcia przycisku wszystko ładnie jest odbierane, lecz w momencie przytrzymania odbierane jest jakbym cały czas klikał (cykliczne wysyłanie z pilota), jest jakaś flaga informująca nas o tym, czy jest nadal przyciśnięty guzik?, albo coś co by informowało, ze to są dane z poprzedniej operacji?

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 lis 2012, o 02:00 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27315
Lokalizacja: Szczecin
Pomógł: 1041

Piotrek121 napisał(a):
... Zrobiłem odbiornik IR na atmedze 8 i pojawił się problem przy odbiorze danych z pilota, gdyż w momencie przyciśnięcia przycisku wszystko ładnie jest odbierane, lecz w momencie przytrzymania odbierane jest jakbym cały czas klikał (cykliczne wysyłanie z pilota),


Nie wiem czy doczytałeś, czy wiesz? ale tak właśnie działają piloty, gdy jest wciśnięty klawisz, to ramka jest cyklicznie co ściśle określony czas (zwany GAP) wciąż wysyłana. (większość pilotów tak ma, niektóre mają troszkę jeszcze inaczej ale RC5 ma dokładnie tak).


Piotrek121 napisał(a):
jest jakaś flaga informująca nas o tym, czy jest nadal przyciśnięty guzik?, albo coś co by informowało, ze to są dane z poprzedniej operacji?

To jest pierwsza książka (pierwsza część/tom) ... i przedstawiona jest w zasadzie prosta dydaktyczna wersja kodu tak aby każdy mógł zrozumieć jak to działa i ew nauczyć się tego, wprowadzać ew własne modyfikacje itp .... Pewnie że można określić, że wcisnąłeś ponownie (ale nie ważne jaki klawisz inny czy ten sam) w jakimś sensie możesz się posłużyć bitem TOGGLE w RC5, aczkolwiek to będzie trochę kłopotliwe

za to w drugiej części książki:

http://atnel.pl/jezyk-c-pasja-programowania.html

zajrzyj w spisie treści do pierwszego rozdziału - jest spory i jest o podczerwieni ale już na wszystkie możliwe sposoby. Są tam świetne metody i to od razu w nowych wersjach bibliotek, które umożliwiają wręcz reakcję nie tylko na wciśnięcie klawisza ale jeszcze na którą ramkę ma klawisz zareagować - biblioteka pozwala je zliczać i robić różne cuda. Lubię się bawić podczerwienią ale te bardziej zaawansowane biblioteki mogłem przedstawić dopiero w drugiej książce po przygotowaniu do programowania opartego już na zdarzeniach (EVENTS), calbacckach itp .....

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 lis 2012, o 17:50 
Offline
Użytkownik

Dołączył(a): 18 mar 2012
Posty: 55
Pomógł: 0

Dziękuje za odpowiedź, będę musiał pomęczyć się z toggle, bo na razie nie widzę innej możliwości



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 lis 2012, o 19:33 
Offline
Użytkownik

Dołączył(a): 18 mar 2012
Posty: 55
Pomógł: 0

W końcu znalazłem trochę czasu na dokończenie mojego programiku, ale pojawił się problem z bitem toggle, najwidoczniej nie działa on tak jak ja zrozumiałem... Mógłby mi ktoś wytłumaczyć jak działa ten bit?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 lis 2012, o 20:06 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27315
Lokalizacja: Szczecin
Pomógł: 1041

Piotrek121 napisał(a):
Mógłby mi ktoś wytłumaczyć jak działa ten bit?


Pisałem w książce ale przypomnę jeszcze raz

bit TOGGLE zmienia stan na przeciwny ZA KAŻDYM razem gdy wciskasz klawisz. Nie ważne jaki klawisz, może być ten sam. Tzn trzymasz np wciśnięty dłużej jakiś klawisz wtedy leci cały czas taki sam bit TOOGLE w każdej kolejnej ramce. Zwalniasz na chwilę klawisz i wciskasz go ponownie - i już toggle bit zmienia stan na przeciwny. Gdybyś wcisnął inny klawisz - to też zmieniłby stan na przeciwny.

czy teraz jaśniej ?

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 lis 2012, o 20:09 
Offline
Użytkownik

Dołączył(a): 18 mar 2012
Posty: 55
Pomógł: 0

czyli przykładowo wciskam przycisk 1 na pilocie to przez cały czas gdy jest przyciśnięty ten przycisk toggle_bit = 0; a jak przycisnę przycisk 2 to toggle_bit = 1?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 lis 2012, o 20:16 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 maja 2012
Posty: 471
Lokalizacja: ZGY/ZS
Pomógł: 30

Bit toggle działa tak, że jak trzymasz wciśnięty przycisk to cały czas ma on taką samą wartość. Dopiero jak zwolnisz przycisk i wciśniesz go ponownie (dowolny przycisk) to zmieni się na wartość przeciwną, tak długo, aż znowu puścisz przycisk. Można to wykorzystać w taki sposób, że deklarujesz sobie jakąś zmienną pomocniczą i ładujesz do niej aktualny stan TOGGLE, a w następnym obiegu pętli porównujesz wartość TOGGLE z tą tymczasową. Jeśli są identyczne to jest dla ciebie informacja, że trzymasz przycisk.

_________________
eDiyCraft.blogspot.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 lis 2012, o 20:47 
Offline
Użytkownik

Dołączył(a): 18 mar 2012
Posty: 55
Pomógł: 0

No właśnie tak myślałem, i zrobiłem programik, ale nie wiem gdzie jest problem :( pierwsza dane odbiera a kolejnej już nie

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 lis 2012, o 21:04 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 maja 2012
Posty: 471
Lokalizacja: ZGY/ZS
Pomógł: 30

Przeanalizuj sobie istotny fragment który napisałeś
Składnia: [ Pobierz ] [ Ukryj ]
język cpp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


wykonasz pętle, odbierzesz kod, przestawisz zmienną bit. I w tym momencie warunek
Składnia: [ Pobierz ] [ Ukryj ]
język cpp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

nie będzie spełniony, a co za tym idzie:
Składnia: [ Pobierz ] [ Ukryj ]
język cpp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

nie zostaną wykonane te instrukcje. Idąc dalej, patrząc do biblioteki IR jest tam kod:
Składnia: [ Pobierz ] [ Ukryj ]
język cpp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Czyli nowe dane nie zostaną wpisane do interesujących cie zmiennych. A w rezultacie toggle_bit będzie wciąż ten sam, czyli różny od twojej tymczasowej zmiennej bit i wracamy na początek mojego postu :)

Ten kod powinien ci pomóc (pomigałem nawiasy, teraz bedzie ok)
Składnia: [ Pobierz ] [ Ukryj ]
język cpp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Autor postu otrzymał pochwałę

_________________
eDiyCraft.blogspot.com



Ostatnio edytowano 29 lis 2012, o 21:07 przez savian86, łącznie edytowano 2 razy

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 lis 2012, o 21:05 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27315
Lokalizacja: Szczecin
Pomógł: 1041

Ło Matko ! ;) z córką - no nie działa bo wstawiłeś to

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


wywal to (tzn tego IF'a a to co jest wewnątrz niego zostaw) czym prędzej i wszystko zacznie ci działać ;) a jak chcesz w bardzo zaawansowany hmm ale też bardzo bardzo praktyczny i przydatny sposób korzystać z ogromnych zalet bitu TOGGLE to zapraszam serdecznie do pierwszego rozdziału mojej drugiej książki, który jest dość obszerny - i tam dopiero się dzieje jeśli chodzi o te zagadnienia ;) mnóstwo fajnych rzeczy a nawet więcej, bo okazuje się, że dla takich standardów jak Sony, JVC, Samsung i innych które normalnie nie mają czegoś takiego jak TOGGLE bit - ja wprowadzam VIRTUAL TOGGLE BIT ;) .... bo aż tak bardzo jest to przydatne

http://atnel.pl/jezyk-c-pasja-programowania.html

w pierwszej książce masz po prostu taką hmmm rzekłbym dydaktyczną wersję obsługi RC5 a w drugiej książce to już "jazda bez trzymanki" i pełne biblioteki, takie które ja osobiście wykorzystuję w swoich projektach komercyjnych.

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 lis 2012, o 21:27 
Offline
Użytkownik

Dołączył(a): 18 mar 2012
Posty: 55
Pomógł: 0

Dziękuje bardzo za pomoc, wszystko juz działa jak powinno, a co do książki to jak będę miał trochę gotówki to będę musiał podjechać po cześć drugą



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 gru 2012, o 17:44 
Offline
Nowy

Dołączył(a): 08 gru 2012
Posty: 13
Pomógł: 0

Dołączam się do wątku kolegi, gdyż mój problem również dotyczy dekodowania rc5. Kod program oparty jest na tym przedstawionym w książce Pana Mirosława. Dekodowanie oparte na ICP (Przechwytywanie zdarzeń zewnętrznych i nadawanie im markera czasowego). Zamiast przesunięć bitowych, odbierane wartości zapisuję w tablicy. Samemu strasznie trudno jest mi znaleźć błąd. Jeśli koledzy w wolnym czasie skłonni byliby rzucić okiem to byłbym bardzo wdzięczny. Z moich spostrzeżeń wynika, iż jest coś nie tak z mierzeniem długości impulsu.

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Chciałem wszystko napisać samemu od początku - chyba przerost ambicji. Dodam, że programuje procesor atmega8, a do 6 portów rejestru C podłączone są diody.



Ostatnio edytowano 8 gru 2012, o 22:20 przez Bartek_98k, łącznie edytowano 5 razy

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 gru 2012, o 18:12 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 maja 2012
Posty: 471
Lokalizacja: ZGY/ZS
Pomógł: 30

Piszesz, że kod oparty jest o książkę, to dlaczego nie korzystasz z gotowej eleganckiej biblioteki, która jest na płytce? Tam obsługa jest napisana w bardzo fajny sposób, łatwo i przyjemnie analizuje się jej kod. Tak przy okazji
Kod:
#define F_CPU 1000000L

Nie rób tak, definiuj to w ustawieniach projektu.

_________________
eDiyCraft.blogspot.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 gru 2012, o 18:12 
Offline
Użytkownik

Dołączył(a): 27 mar 2012
Posty: 511
Lokalizacja: Sląsk
Pomógł: 14

Na początek kilka wskazówek
1.Nigdy w kodzie nie definiuj częstotliwości procesora!!! Ale to nigdy!
2. Zrób wcięcia w kodzie będzie on bardziej przejrzysty. Wtedy szybciej znajdziemy twojego babola :)

_________________
Programowanie to styl życia :D



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 gru 2012, o 18:27 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 05 maja 2012
Posty: 256
Pomógł: 3

I kolego Bartek_98k wklej ten swój kod w znacznikach syntex c, a nie code, bo zaraz przyjdzie Sun i tu zrobi czystki ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 gru 2012, o 18:40 
Offline
Nowy

Dołączył(a): 08 gru 2012
Posty: 13
Pomógł: 0

Poprawione ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 gru 2012, o 20:00 
Offline
Nowy

Dołączył(a): 08 gru 2012
Posty: 13
Pomógł: 0

Dziękuję za wskazówki, zaraz biorę się do poprawek i dam znać o efektach.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 gru 2012, o 22:29 
Offline
Nowy

Dołączył(a): 08 gru 2012
Posty: 13
Pomógł: 0

Zmieniłem wiersze 57 , 76

I w 105 zmieniłem to tak, że mogłem usunąć tą zmienna "e" nad którą się zastanawialiśmy.
Niestety w dalszym ciągu nie rusza.

Gdzieś na początku musi być błąd po wstawieniu PORTC=1; (dla próby) dioda się nie zapala.

if (a==1)
{

if(szerokosc_impulsu>MAX_BIT) a=2;
if(szerokosc_impulsu<MIN_HALF_BIT) a=2;

if(a==1)
{
PORTC=1;
if(szerokosc_impulsu>MAX_HALF_BIT) licznikz++;



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 gru 2012, o 00:38 
Offline
Nowy

Dołączył(a): 08 gru 2012
Posty: 13
Pomógł: 0

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Ostatnio edytowano 9 gru 2012, o 17:24 przez Bartek_98k, łącznie edytowano 6 razy

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 gru 2012, o 00:54 
Offline
Nowy

Dołączył(a): 08 gru 2012
Posty: 13
Pomógł: 0

TCCR1B |= (0<<ICES1); // Zbocze opadające powoduje wpis do rejestru ICR tutaj wydaje mi się ze jest wszystko ok 0+0=0

Weźmy to linie 38. Na starcie wszystkie linie tego portu maja 0, ja chce aby linia ICES1 dalej była zerem wiec 0+0=0 tak to działa ?

Jeszcze takie pytanie:

a|=(1<<5) to jest a= a |00010000



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 gru 2012, o 01:22 
Offline
Nowy

Dołączył(a): 08 gru 2012
Posty: 13
Pomógł: 0

Ok rozumiem. Tylko proszę o potwierdzenie mojego przykładu

a|= (1<<3) to jest a=a|00000100

czyli a|= (1<<3)|(1<<5) to jest a=a|00010100

gdy mam jedynkę załóżmy na bicie PC3 i chce zmieniać za każdym przerwaniem to robię tak ?

PORTC ^=(1<<PC3) czy to działa ?

Jak jest 1 i dam jeden to zmieni na zero, a jak mam zero to będzie 1?

A teraz jak chce wyzerować bit PC4 (00010001) to działam tak ?
00010001 & 11101111 wiec najpierw muszę cały port ustawić jedynkami, później zmienić PC4 na zero i zrobić iloczyn ?



Ostatnio edytowano 9 gru 2012, o 01:43 przez Bartek_98k, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 gru 2012, o 01:36 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 05 maja 2012
Posty: 256
Pomógł: 3

Było dobrze, to popsułeś ;)

a |= (1<<3) to jest a=a|00000100 Jest źle
a |= (1<<3) to jest a=a|00001000 Jest dobrze

Numerologię bitów zaczynamy zawsze od zera.


PORTC ^= (1<<PC3) zrobi wartość tego bitu przeciwną do aktualnej. Tj. jak masz 1 to zrobi 0, a gdy masz 0 zrobi 1.

Natomiast samo zerowanie zrobisz tak: PORTC &= ~(1<<PC3)

I przeczytaj ten wpis na blogu pewnego erudyty. Mirek poświęca swój czas i udostępnia za darmo swą wiedzę, to nic tylko korzystać :) Choć to nie to samo co na papierze ;)



Ostatnio edytowano 9 gru 2012, o 01:44 przez ajek, łącznie edytowano 2 razy

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 gru 2012, o 01:51 
Offline
Nowy

Dołączył(a): 08 gru 2012
Posty: 13
Pomógł: 0

Natomiast samo zerowanie zrobisz tak: PORTC &= ~(1<<PC3) rzeczywiscie

Czyli tak jakby ustawiam na PORTC wszędzie jedynki, później ten bit który chce wyzerować ustawiam na 1 i wszystko traktuje iloczynem

Dziękuję Panowie (Antystatyczny i ajek ) za wasze poświecenie. Jutro sprawdzę czy to pomoże mojemu układowi - będę się jeszcze odzywał.

Podoba mi się to że nie przedstawiacie gotowych odpowiedzi tylko pomagacie w nauce. SUPER !


PS.(ajek) tak, tak o tym myślałem



Ostatnio edytowano 9 gru 2012, o 02:06 przez Bartek_98k, łącznie edytowano 3 razy

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 gru 2012, o 02:00 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 05 maja 2012
Posty: 256
Pomógł: 3

Dobrze myślisz, ale pewnie źle to w słowa ubrałeś :D

Bo na porcie c nic nie ustawiasz, tylko port c traktujesz iloczynem z zaprzeczonej wystawionej jedynki na PC3 ;)
Na przykładzie:
PORTC= 1010
i robimy:
PORTC &= ~(1<<3)
to rozbiję na podstawowe funkcje tak jakby:
PORTC = 1010 & (~1000);
czyli:
PORTC = 1010 & 0111;
a to nam w efekcie daje:
PORTC = 0010.

Mam nadzieję, że w miarę zrozumiale :)


Widzisz Antystatyczny, taki ze mnie cwaniak nocny marek ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 gru 2012, o 12:20 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 05 maja 2012
Posty: 256
Pomógł: 3

hehe, racja. Już jednym okiem przysypiałem widać ;)
Oczywiście 0b101 i 0b111. Mój błąd, na szczęście Sun czuwa :D

Kolego, wszędzie przed moimi czterobitowcami 0b wpakować, ale idea ta sama.

0b, zapis binarny
0x, zapis szesnastkowy
zwykła liczba, zapis dziesiętny



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 gru 2012, o 16:26 
Offline
Nowy

Dołączył(a): 08 gru 2012
Posty: 13
Pomógł: 0

Zmieniłem kod według zaleceń. (Poprawiony wstawiony jest na 1 stronie - nie zmieniłem deklaracji zmiennych żeby nie przesuwać numeru linii ). Dla próby zmodyfikowałem linie 118 i 119 żeby sprawdzić czy dobrze mierzony jest czas i okazuję się, że nie. Szerokość impulsu wychodzi dużo za duża ...

(Wszystko zrealizowane jest na płytce prototypowej, zasilanie z usb nie wiem czy to może mieć wpływ, pilot rc5 philips)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 gru 2012, o 17:04 
Offline
Nowy

Dołączył(a): 08 gru 2012
Posty: 13
Pomógł: 0

Bez zamykania nawiasów nie kompiluję się. Sprawdziłem inny pilot też 38kHz (Panasonic) tam też nie ma takich szerokich impulsów i jest to samo.


Zmieniłem kod, na 1 stronie też i nic. To chyba musi być jakiś problem sprzętowy ?



Ostatnio edytowano 9 gru 2012, o 17:26 przez Bartek_98k, łącznie edytowano 2 razy

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 gru 2012, o 17:42 
Offline
Nowy

Dołączył(a): 08 gru 2012
Posty: 13
Pomógł: 0

Ok tak zrobię.

Chyba że sam Pan Mirek rzuci okiem ...

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Pozdrawiam, dzięki



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 gru 2012, o 17:23 
Offline
Nowy

Dołączył(a): 08 gru 2012
Posty: 13
Pomógł: 0

Częstotliwość mojej atmegi to 1MHz. Niby wszystko się zgadza.

Aby wykryć, czy przypadkiem nie łapie mi śmieci, zrobiłem tak, że jak tylko program wejdzie do procedury obsługi przerwania to zapala mi jedną diodę. Po podłączeniu (czekam w programie głównym 1s na ustabilizowanie układu) do zasilania to prędzej czy później ta dioda się zapala. Układ sam się wzbudza. Jutro zakupię nowy odbiornik i zobaczę czy coś się zmieni. Dodam że odbiornik jest podłączony wg schematu z książki (bez dodatkowego rezystora podciągającego 10kOhm)

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Nie, nic to nie dało ... dalej się wzbudza



Ostatnio edytowano 10 gru 2012, o 18:20 przez Bartek_98k, łącznie edytowano 3 razy

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 gru 2012, o 21:19 
Offline
Nowy

Dołączył(a): 08 gru 2012
Posty: 13
Pomógł: 0

W końcu udało się, wszystko działa tak jak powinno. Dziękuję wszystkim (w szczególności koledze Antystatyczny) za pomoc.

Program steruję diodą RGB (wspólna anoda) (przyciski 1,2,3 każdy to inny kolor). Wszystko oparte jest na przerwaniach od ICP.

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 30 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 3 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO