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



Teraz jest 28 mar 2024, o 09:26


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 8 ] 
Autor Wiadomość
PostNapisane: 21 sty 2021, o 19:08 
Offline
Nowy

Dołączył(a): 18 sty 2021
Posty: 5
Pomógł: 0

Witam serdecznie.

Jestem zielony w dziedzienie AVR lecz od jakiegoś czasu staram się coś tworzyć.

Potrzebuję pomocy w modernizacji kodu pana Mirka.

Ogólne założenia:

- Atmega 2560 8 MHz
- HC-SR04
- LCD 2x16

Posiadam bibliotekę dla HC-SR04 myślę że problem leży w źle ustawionych Tiemrach.

Moje wszelkie próby zakończyły się klęską. Przeszukiwałem forum forum próbowałem lecz mam problem z ustawianiem timerów.

Proszę o pomoc, miejsca w których myślę że jest problem.

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: 21 sty 2021, o 21:05 
Offline
Użytkownik

Dołączył(a): 29 gru 2013
Posty: 82
Pomógł: 3

To jeszcze może nam powiedz jaki efekt chcesz uzyskać :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 sty 2021, o 22:14 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 mar 2015
Posty: 313
Lokalizacja: Czerwionka-Leszczyny
Pomógł: 22

Nie jestem pewien ale 3 razy "przekopałem" datascheet dla ATmegi2560 i nie znalazłem tam rejestru TIMSK.
O co mi chodzi?
Konfigurujesz Timer1. Zbocze i preskaler ustawiłeś dobrze natomiast zezwolenie na przerwania wg. noty powinno być
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

U ciebie w linii 5 jest inaczej.
Nie wiem albo to jest źle wg mnie albo ja mam złą dokumentację tej ATmegi.
W mojej dokumentacji nie ma rejestru TIMSK, ponieważ rejestry te są numerowane np: TIMSK2 itp.
Oprócz tego w tym rejestrze nie znalazłem bitu o nazwie TICIE1.
Jeżeli moja dokumentacja dla tej ATmegi jest niekompletna i się mylę, to nie krzyczcie na mnie, że się nie znam i tę odpowiedź potraktujcie
tak jakby jej nigdy nie było.
No chyba, że coś przegapiłem w tej dokumentacji i to moja wina, no to sorry. Człowiek stary to i ślepy no ale cóż.
Dokumentacja, z której korzystałem jest w załączniku.


Załączniki:

Aby zobaczyć załączniki musisz się zalogować. Tylko zalogowani użytkownicy mogą oglądać i pobierać załączniki.

_________________
http://www.avrboss.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 sty 2021, o 08:40 
Offline
Nowy

Dołączył(a): 18 sty 2021
Posty: 5
Pomógł: 0

Aktualnie kod wygląda tak

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


Program nie wykonuje tego co znajduje się w if w pętli while.

Domyślam się że nadal posiada problem z timerem 4.

Widzi ktoś może jakiś błąd przez który program nie wykonuje się tak jak bym chciał ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 sty 2021, o 15:50 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 mar 2015
Posty: 313
Lokalizacja: Czerwionka-Leszczyny
Pomógł: 22

Spójrz na linie od 53 do 55 twojego kodu.
Konfigurujesz rejestr TCCR1B czyli zbocze i prescaler od TIMER1 a
później chcesz odblokować przerwania od Timera czwartego czyli :
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

_________________
http://www.avrboss.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 sty 2021, o 11:42 
Offline
Nowy

Dołączył(a): 18 sty 2021
Posty: 5
Pomógł: 0

Zmodyfikowałem kod.

Wygląda aktualnie tak.

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


Wykonuje się już kod w pęli while lecz bez prawidłowego pomiaru. Wydaje mi się że timery są już ustawione prawidłowo. Sprawdziłem datasheet kilka razy.

pomiar to 000020/000021 us.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 sty 2021, o 12:48 
Offline
Nowy

Dołączył(a): 18 sty 2021
Posty: 5
Pomógł: 0

Poprawiłem błąd w " ISR(TIMER4_CAPT_vect) "

z
ICIE4

na
ICES4

ale problem jest nadal.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 sty 2021, o 11:22 
Offline
Nowy

Dołączył(a): 18 sty 2021
Posty: 5
Pomógł: 0

Temat zamknięty.

Problem leżał w połączeniu zapomniałem że płytka przewodzi tylko do połowy linię zasilającą.

Dziękuje za pomoc pomogło mi to lepiej zrozumieć timery.

Gdyby ktoś chciał gotowy kod.

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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 7 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:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO