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



Teraz jest 29 mar 2024, o 00:29


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 
Autor Wiadomość
PostNapisane: 17 kwi 2018, o 19:35 
Offline
Nowy

Dołączył(a): 15 kwi 2018
Posty: 3
Pomógł: 0

Witam

Od kilku dni siedzę nad podłączeniem tego czujnika odległości do mojej ATMEGI i nic w niej nie chce działać. Ogólnie miałem dużo problemów z przerywaniami, ale coś się w końcu z nimi udało i teraz nie działa mi timer. Mam podłączony wyświetlacz OLED pod I2C oraz czujnik odległości. Pod TRIG jest PB0 a pod ECHO mam INT0, czyli PD2. Próbowałem sam coś napisać, potem także kody z internetu, ale nic nie chce działać. Na wyświetlaczu podaje mi ile pętli wykonał główny program, ilość wejść do INT0 oraz odległość z timera, która zawsze wynosi 0. Do przerwań mi czasem wchodzi bo widzę, że licznik się zwiększa. Wrzucam cały kod, niektóre elementy mam "//", ale to są te z których wcześniej korzystałem. Wrzucę je żebyście widzieli co też moja wyobraźnia próbowała stworzyć, jednak nie jest to wszystko, ponieważ dużo kodu usunąłem :) Dodam też, że jak nie miałem dodanych przerwań i robiłem sobie coś na diodach dla nauki to jak deklarowałem F_CPU jako 1MHz to diody mi migały co ~ 1 sekundę, a po dodaniu przerwań, jak dam delay na 5 sec to też jakoś co sekundę się coś robi. Nie wiem czemu to ma wpływ na te taktowanie, ale próbowałem w fusebitach zmienić taktowanie na 8MHz i teraz w tym programie widzę, że wyświetlacz mi się odświeża co ~3 sec jak mam ustawione na 2. Pozdrawiam i dzięki za pomoc

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 22 kwi 2018, o 19:39 przez vSoulz, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 kwi 2018, o 20:55 
Offline
Użytkownik

Dołączył(a): 22 gru 2013
Posty: 296
Lokalizacja: Szczecin
Pomógł: 47

Kilka uwag porządkowych:
1. F_CPU definiuje się w opcjach projektu- tu do usunięcia
2.makro _BV już jest zdefiniowane w io.h -nie trzeba definiować
3. funkcja: sys_init(void)-niepotrzebna- po co za każdym razem ustawiać preskaler kontrolera , najlepiej zaprogramować jeden raz za pomocą odpowiedniego fusa.
4. funkcja: double l_pomiar(void) -horror- ma zwracać typ double a zwraca typ int (kompilator nie protestuje?). Poza tym po co ma zwracać zmienną, z którą nic nie robi, a która i tak jest dostępna (globalna).
5. sei()-lepiej włączać już po wszystkich "initach" ( jeżeli nie koliduje to z nimi).
6. "pulse" "i" są volatile ale "licznik" i "flaga" już nie- a są używane przez przerwania- a może będą za chwilę przez kompilator zoptymalizowane?.
Reszty nie sprawdzałem. Lepiej na początek opanuj jednak mruganie Led-em z przerwaniami i bez, co określony, zadany okres, potem dołącz wyświetlacz-opanuj , potem czujnik-opanuj.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 kwi 2018, o 05:12 
Offline
Użytkownik

Dołączył(a): 25 lip 2013
Posty: 2561
Pomógł: 126

A syntax to chyba nie actionscript?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 kwi 2018, o 19:37 
Offline
Nowy

Dołączył(a): 15 kwi 2018
Posty: 3
Pomógł: 0

Witam

Chodzi mi tym razem o inny problem. Mianowicie INT0 wyzwalam jakąkolwiek zmianą logiczną, czyli do EICRA wpisuję ISC00. Pod INT0(PD2) mam podpięty PB1, który zmieniam co 1 sekundę. Gdy wyzwolone jest INT0 chcę aby migała mi dioda którą mam podłączoną pod PB0. Myślę, że szukałbym dalej jak to zrobić, ale jak mam podpięty miernik, żeby sprawdzić napięcie na PB1 to ogólnie działa mi to tak jak chcę żeby mi działało, lub jak dotykam kabla, a jak odłączę miernik to nic się nie dzieje. Próbowałem pod PB1 podpinać rezystory albo kondensatory ale nic niestety to nie dało. Proszę o pomoc. Napewno nie jest to kwestia styków.

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: 22 kwi 2018, o 20:19 
Offline
Użytkownik

Dołączył(a): 22 gru 2013
Posty: 296
Lokalizacja: Szczecin
Pomógł: 47

A gdzie jest konfiguracja PB1 jako wyjście?


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 kwi 2018, o 20:47 
Offline
Nowy

Dołączył(a): 15 kwi 2018
Posty: 3
Pomógł: 0

Ahhh... właśnie rozmawiałem z kolegą i mi to samo powiedział. Już działa



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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 10 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