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



Teraz jest 8 sie 2025, o 21:19


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 15 ] 
Autor Wiadomość
PostNapisane: 8 kwi 2014, o 22:46 
Offline
Nowy

Dołączył(a): 08 kwi 2014
Posty: 16
Lokalizacja: KRK
Pomógł: 0

Witam,
Proszę o poradę co w przedstawionym poniżej kodzie jest nie tak mianowicie zbudowałem w oparciu o atmega32, RTC- ds1307 oraz TEA5767 radio FM z zegarkiem
Oba kody osobno RTC oraz FM działają prawidłowo problem pojawia się kiedy to próbuje połączyć oba programy. Efekt tego jest taki że mogę zmieniać zakres stacji FM ale zegar cały cas wskazuje tą samą godzinę. Widać że RTC pracuje ponieważ jak zresetuje procesor godzina odświeża się. Są to moje początki z Bascom AVR więc proszę o wyrozumiałość.

oto kod:

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


W przypadku kiedy usunę pętlę Do .. Loop dla

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


Zegar zaczyna pracować ale znowu nie mogę zmienić zakresu słyszę tyko trzaski w głośniku i widać na wyświetlaczu że wartość z częstotliwością i nazwą radia miga ale bez żadnej reakcji

Proszę o pomoc bo ja już zgłupiałem co może być nie tak



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 kwi 2014, o 05:31 
Offline
Użytkownik

Dołączył(a): 04 cze 2013
Posty: 517
Pomógł: 26

Kolego patrzę i patrzę i nie mogę dostrzec w którym miejscu wywołujesz procedury Getdatetime,Setdate,Settime, Gdzie je masz zadeklarowane ?

_________________
Przewodnik|Sterownik akwariowy



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 kwi 2014, o 22:30 
Offline
Nowy

Dołączył(a): 08 kwi 2014
Posty: 16
Lokalizacja: KRK
Pomógł: 0

Witam,
Racja procedury Getdatetime,Setdate,Settime nie były z znikąd wywoływane moja pomyłka.
Zrobiłem coś takiego ( kod poniżej ) i dalej jest to samo :( radio gra da się zmieniać zakresy a zegar dalej stoki na 1 wskazaniu.

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


Co może być jeszcze nie tak czy to dobrze zrobiłem ??
Proszę o pomoc.
Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 kwi 2014, o 05:34 
Offline
Użytkownik

Dołączył(a): 04 cze 2013
Posty: 517
Pomógł: 26

Kolego wydaje mi się że troszkę leżysz z bascomem. Czy zadeklarowałeś procedury na początku programu Następnie pooprawiłeś kod i robisz coś takiego w pętli: Odczytujesz czas a następnie ten sam czas wpisujesz do DS-a więc jak on ma ci się zmieniać? Jeśłi odczytasz np sekunda=10 i za raz ja wpisujesz tą "10" do DS-a no to jak ma ci się zmienić na 11? Dołóż sobie przerwanie co 1s i tam wstaw wywoływanie odczytu DS-a

_________________
Przewodnik|Sterownik akwariowy



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 kwi 2014, o 22:44 
Offline
Nowy

Dołączył(a): 08 kwi 2014
Posty: 16
Lokalizacja: KRK
Pomógł: 0

Witam,
No dobrze to stwierdziłeś z bascomem u mnie cienko jest widzę u siebie jeszcze sporo do nauki i poprawy ale trzeba się czymś bardziej ambitnym końcu zająć niż zapalanie diodek mniejsza z tym. Dokonałem poprawek w programie zadeklarowałem wszystkie procedury poprawiłem pętle ale coś dalej jest nie tak :( Dalej zegar stoi ale chyba znalazłem przyczynę takiego stanu rzeczy związana jest ona z funkcją jaką zadeklarowałem jako procedurę "Zmiana" mianowicie kiedy zakonotuje w pętli Do... Loop tą procedurę zegar rusza odmierza czas bezproblemowo radio też się włącza tylko nie da się zmienić stacji brak reakcji na przyciski po dodaniu "Reset" zaczyna reagować na przyciski słychać trzaski w głośniku i widać na wyświetlaczu że wskazania stacji się migają ale niestety nie zmienia się stacja czas odmierza się normalnie:


Przykład:

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



Oto cały kod po dokonaniu poprawek:
Co tutaj jeszcze jest nie tak :(


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


Dziękuje i Pozdrawiam.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 kwi 2014, o 05:29 
Offline
Użytkownik

Dołączył(a): 04 cze 2013
Posty: 517
Pomógł: 26

Kolego jak mogą ci działać przyciski jak zrobiłeś procedure "zmiana" a nigdzie jej nie wywołujesz. Daj obsługę tych przycisków do głównej pętli. A tak na dzień dobry proponował bym ci napisać kod od nowa. Bo masz zegar, procedurę zapisu ustawień godziny, a nigdzie znowu nie widzę możliwości ustawiania tego zegarka.

_________________
Przewodnik|Sterownik akwariowy



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 kwi 2014, o 21:56 
Offline
Nowy

Dołączył(a): 08 kwi 2014
Posty: 16
Lokalizacja: KRK
Pomógł: 0

Witam,
Zapisu godziny i daty dokonuję na sztywno linia 33 oraz 34 w kodzie wystarczy mi to na razie. Chcę docelowo pobawić się i ustawiać czas po Rs232. Procedura "zmiana" wywołuję z pętli Do..Loop linia 73 w powyższym kodzie odnosi się do linii 106. Gdy usunę pętlę z procedury zmiana zaczyna działać zegar ale przestają działać guziki ze zmianą zakresu po wprowadzeniu jej z powrotem zaczyna działać zmiana zakresów ale przestaje zegar. Czy przypadkiem w tej pętli nie jest problem.
Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 kwi 2014, o 13:18 
Offline
Użytkownik

Dołączył(a): 04 cze 2013
Posty: 517
Pomógł: 26

Kolego problem w twoim kodzie polega na braku znajomości zasady działania pętli Do... Loop. Więc ci ją przybliżę Jest to pętla nieskończona (pewnie wiesz lub nie ) a co to oznacza. Jeśli jest wykonywany program od pierwszej lini. To sobie leci po kolei deklaruje zmienne procedury itp. Napotyka pętle Do...Loop i wskakuje do niej ,czyli zaczyna wykonywać wszystko po słowie "DO" aż do momentu w którym napotka słowo LOOP i co się w tedy dzieje? Procesor zaczyna wykonywać kod od nowa czyli od miejsca w którym zaczyna się pętla "DO". Jako że pętla DO....LOOP jest nie skończona, procesor sobie wykonuje kod zawarty między słowem DO LOOP do końca swojego życia. Czyli analizując twój kod będzie się wykonywać tylko ta pętla
Składnia: [ Pobierz ] [ Ukryj ]
język basic4gl
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Teraz nasuwa się pytanie Jak wykonać kod po słowie LOOP. Jest kilka sposobów. Wymienię dwa bo reszty nie pamiętam lub nie znam :D Pierwszy to słowo "until" czyli piszesz loop until wyjście =1 "jakaś zmienna zezwalająca na opuszczenie pętli " i w tedy jeśli zmenna wyjście będzie równa jeden w tedy opuszczasz pętle i wykonujesz wszystko po słowie LOOP. Kolejny sposób to wykorzystanie procedur. Właśnie w twoim kodzie wykorzystany jest ten drugi sposób "procedury" .Jak to przeanalizować . Procesor wykonuje kod, napotyka procedurę Fm i co robi. Można nazwać że teleportuje się do innego pomieszczenia w którym jest zapisany kod tej procedury:
Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
język basic4gl
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Po wykonaniu tego kodu w innym pomieszczeniu musi teleportować się z powrotem do głównego pokoju, czyli do pętli DO LOOP na samej górze.To samo się dzieje z procedurą Getdatetime Wykonując dalej kod główny procesor napotyka procedurę "zmiana" co robie teleportuje się do innego pokoju :
Składnia: [ Pobierz ] [ Ukryj ]
język basic4gl
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

i co tu się dzieje ? Procesor napotyka słowo DO co to oznacza? Jest tutaj pętla nieskończona. Procek wskakuje do tej pętli sprawdza czy pierwszy przycisk wciśnięty , drugi wciśnięty Następnie napotyka słowo LOOP, które informuje go o powrocie do początku tej procedury. Procesor wraca z wykonywaniem do słowa DO, sprawdza przycisk pierwszy drugi i znowu słowo LOOP i tak do końca swojego życia. A przecież założenie było takie że po sprawdzeniu przycisków ma teleportować się do głównej pętli. Wydaje mi się że po tym wytłumaczeniu znajdziesz problem dlaczego nie możesz zmieniać stacji i zegarek ci nie zmienia czasu jak włączysz procedurę "zmiana"

A tak to mniej więcej działa z wykonywaniem procedur (kliknij na obrazek aby zobaczyć animację )
Obrazek

Podprogram=procedura


Autor postu otrzymał pochwałę

_________________
Przewodnik|Sterownik akwariowy



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 kwi 2014, o 20:36 
Offline
Nowy

Dołączył(a): 08 kwi 2014
Posty: 16
Lokalizacja: KRK
Pomógł: 0

Matekogon - Dzięki wielkie za pomoc udało mi się uruchomić :) działa. Zastosowałem się do sposobu nr.2 opisywanego przez ciebie to było takie oczywiste a ja głupi nie widziałem tego. Widzę że jeszcze dużo nauki przede mną.
Dziękuje ci jeszcze raz i Pozdrawia.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 kwi 2014, o 18:31 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 27 gru 2011
Posty: 186
Lokalizacja: Dublin
Pomógł: 8

Ehh ale matekogon u ciebie z bascomem też nie lepiej a wystarczyło helpa przeczytać a nie wprowadzać kolegę w błąd.

Ponieważ używasz bibliotek $lib "ds1307clock_ger.lib" sub-rutyny są zadeklarowane wiec ich już nie trzeba deklarować.

A mając ds1307 grzechem jest nie wykorzystanie wyjścia sqwe i podania np na int0 wtedy zamiast wywoływać getdatetime w pętli można ustawić flagę np co sekundę i pobrać z ds1307 czas.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 gru 2014, o 16:48 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 mar 2014
Posty: 85
Lokalizacja: Greystones-Irlandia
Pomógł: 1

Witam kolegów
Czy ma może ktoś działający kod do TEA5767 ?
Bardzo bym był wdzięczny

_________________
Faber Est Quisque Suae Fortunae



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 gru 2014, o 17:09 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 19 lut 2014
Posty: 569
Lokalizacja: Żagań
Pomógł: 54

kulamario napisał(a):
Witam kolegów
Czy ma może ktoś działający kod do TEA5767 ?
Bardzo bym był wdzięczny


Zerknij na ten link.

_________________
http://leszczamiga.ppa.pl/



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 gru 2014, o 02:11 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 mar 2014
Posty: 85
Lokalizacja: Greystones-Irlandia
Pomógł: 1

Widziałem już ten artykuł
ale kod nie jest działający autor pisze ze nie udało mu się uruchomić tego radia

_________________
Faber Est Quisque Suae Fortunae



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 gru 2014, o 17:18 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 08 mar 2014
Posty: 5
Lokalizacja: opolskie
Pomógł: 0

kulamario napisał(a):
Widziałem już ten artykuł
ale kod nie jest działający autor pisze ze nie udało mu się uruchomić tego radia

A sprawdzałeś? :P
Śmię twierdzić że kod jest funkcjonujący a problem może tkwić gdzie indziej. ;-)

Komunikacja działa, układ prawidłowo reaguje i interpretuje polecenia i wysyła dane. Niemniej spodziewanego efektu brak. Jak dotąd nie udało się namierzyć problemu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 gru 2014, o 01:58 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 mar 2014
Posty: 85
Lokalizacja: Greystones-Irlandia
Pomógł: 1

Mam coś takiego ale nie działa
chcę ustawić na sztywno jedna stacje 103.3
Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
język basic4gl
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

_________________
Faber Est Quisque Suae Fortunae



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: 15 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

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


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:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO