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



Teraz jest 28 mar 2024, o 18:15


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 21 ] 
Autor Wiadomość
PostNapisane: 17 lip 2019, o 10:42 
Offline
Użytkownik

Dołączył(a): 08 sty 2018
Posty: 68
Pomógł: 0

Witam, wracam do podstaw w celu utrwalenia przerwan i zrobiłem program od P. Mirka jednak po ustawieniu Timera wg zaleceń, ekran Led lekko miga. I nie wiem co by mogło być nie tak - ogólnie kod myślę że mam identyczny ale jak bd trzeba to zamieszczę. Zastanawiam się nad fuse bitami czy nie powodują problemu. Działam na nowym zestawie ATB 1.05 i na nim mam ten efekt a rezonator na nim to 11-stka a w książce przykład jest na 8mce. Czy to czasem tutaj nie może siedzieć jakiś babol? :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 lip 2019, o 10:46 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 26 sty 2016
Posty: 1146
Lokalizacja: Kraków
Pomógł: 93

Pokaż konfigurację timera



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 lip 2019, o 12:09 
Offline
Użytkownik

Dołączył(a): 08 sty 2018
Posty: 68
Pomógł: 0

Oki podesle tylko wróce do domu :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 lip 2019, o 18:07 
Offline
Użytkownik

Dołączył(a): 08 sty 2018
Posty: 68
Pomógł: 0

Oto moj kod z d_led.c z inicjalizacja Timera 0 i procedura przerwania . Niemal idento z ksiązki tylko może inne rozmieszczenie .

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


------------------------ [ Dodano po: 3 minutach ]

Przy takich Fuse bitach z MkCacl widok .
Obrazek

------------------------ [ Dodano po: 8 minutach ]

Wydaje mi się przeliczenie złe , ale po wykonaniu przeliczenia :
(11059000/1024/200)-1 = 53,99 do rejestru OCR0 ale bez zmian , nadal widoczne miganie :/ mam sprobować na innym preskalerze ? na 256 ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 lip 2019, o 18:22 
Offline
Użytkownik

Dołączył(a): 08 sty 2018
Posty: 68
Pomógł: 0

dobra ok - przepraszam za całe zamies\nie ...znalazłem tego babola zmieniając na preskaler 256 :D
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


błąd zapisu :) Brakło wystawienia stanu wysokiego na odpowiednie bity rejestrów :) Wybaczcie za zajmowanie miejsca na forum takimi sprawami :P przeoczenie :)

------------------------ [ Dodano po: 1 minucie ]

zubik a ten bit skad masz ?:X ja go nie mam w swojej liscie na MkCalc :x ogolnei problem rozwiązałęm ale o ten bit pytam z ciekawości :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 lip 2019, o 18:26 
Offline
Moderator
Avatar użytkownika

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

ATmega8 - nie ma bitu CKDIV8 ;) no przecież widać to w MkAvrCalculator - a przecież po to on jest ;)

_________________
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: 17 lip 2019, o 18:29 
Offline
Użytkownik

Dołączył(a): 08 sty 2018
Posty: 68
Pomógł: 0

No też włąsnie o to zapytałem bo go nei miałem i pomyślałęm skąd on się wziął :) Dzięki wszystkim za wypowiedzi :) Ledy świeca jednym ciągiem perfect :D

------------------------ [ Dodano po: 3 minutach ]

Tak swoją drogą teraz człowiek się zastanawia , jakbym chciał dołożyć piąty znak bez dokładania 5tego wyswietlacza to jakby to właśnei zrobic ? Tzn choedzi mi o to zeby wyswietlic 4 litery jakieś i piąta na pierwszym segmencie po jakiejs chwili . To chyba w jednym przerwaniu niemozliwe albo trudne tak ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 lip 2019, o 07:56 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 26 sty 2016
Posty: 1146
Lokalizacja: Kraków
Pomógł: 93

feniks_ napisał(a):
choedzi mi o to zeby wyswietlic 4 litery jakieś i piąta na pierwszym segmencie po jakiejs chwili . To chyba w jednym przerwaniu niemozliwe albo trudne tak ?
A pozostałe 3 bez zmian?
Robisz sobie dodatkowy timer, którym odliczasz czas. I po odliczeniu czasu podmieniasz cyfry, które chcesz wyświetlić.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 lip 2019, o 15:56 
Offline
Użytkownik

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

Albo przesuwanie napisu w lewo :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 lip 2019, o 17:54 
Offline
Użytkownik

Dołączył(a): 08 sty 2018
Posty: 68
Pomógł: 0

No własnie drugi timer to narazie dla mnei wciąż zagadka bo jak sam P.Mirek mawia , że to wyższa szkoła jazdy :) Narazie bazuje na jednym więc nic więcej nei wycisne z tego , chyba , żę faktycznei jak pisze mikcy zeby przesuwać obraz , ale tego też nei ogarne narazie :) Ale ogarne tematy przerwań do perfekcji i bd probował działać dalej :) Na tą chwile jak jesteśmy w tym temacie chciałem tylko zapytać o jedną częśc kodu :
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

taka przykłądowa deklaracja wyswietlania jest deklarowana przesunieciem bitowym , ale tak nie do konca dla mnei to zrozumiałe . Myslalem żę typowe przesuniecie bitowe do 1<<PB0 na przykład . Tzn chlkoodzi mi , że dotyczy jakiegoś portu i jego danego nr , a tu deklaracja zapalania segmentow jest na jakiej zasadzie ? Bez podawania z którego portu ? tylko same nr ? Będe wdzięczny jeszcze za to wyjaśneinie :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 lip 2019, o 06:09 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 26 sty 2016
Posty: 1146
Lokalizacja: Kraków
Pomógł: 93

Tak naprawdę, PA0, PB5... są to tylko zapisy mające ułatwić programiście pracę.
W eclipse (nie wiem, czy w mkClipse też, a nie mam teraz możliwości sprawdzić) jak klikniesz myszką w PB0 z wciśniętym CTRL, to przeniesie Cię do deklaracji symbolu. A tam okaże się, że PB0 to tak naprawdę 0. I na tej zasadzie są robione definicje segmentów.
A zapis PAx, PBx itd. są przydatne na przykład po to, żeby kompilator podpowiedział Ci, czy wybrany procek ma takie wyprowadzenie.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 lip 2019, o 21:20 
Offline
Użytkownik

Dołączył(a): 08 sty 2018
Posty: 68
Pomógł: 0

oki dzieki :) Ale w takim razie skad wiadomo o jaki port chodzi kiedy go nei oznacze odpowiednia litera jak tutaj ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 lip 2019, o 21:32 
Offline
Użytkownik

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

Bo zależy do którego PORTx się odwołujesz.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 lip 2019, o 21:47 
Offline
Użytkownik

Dołączył(a): 08 sty 2018
Posty: 68
Pomógł: 0

no tak a w define powinienem sie odwolac własnie a tu tego nie piszac....no nie odwoluje sie :) i stad moje pytanie :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 lip 2019, o 08:07 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 26 sty 2016
Posty: 1146
Lokalizacja: Kraków
Pomógł: 93

No nie do końca tak.
Bo przecież żeby zaświecić segmenty (albo zgasić) możesz zapisać:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
I to będzie działało, ustawisz stan na pinach PC0 i PC5 (tak, wiem, to wygląda dziwnie. I wiem, że tak się nie powinno pisać, ale to tylko przykład).
Kluczowe tu jest określenie, do rejestru którego PORTu wysyłasz. Tu akurat jest PORTC.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 lip 2019, o 08:49 
Offline
Użytkownik

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

Dokładnie i dlatego zdarza się, że początkujący programiści mają kłopoty z niedziałaniem swoich programów.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 lip 2019, o 11:29 
Offline
Użytkownik

Dołączył(a): 08 sty 2018
Posty: 68
Pomógł: 0

Czyli tak naprawde chodzi o port ktory ustawilem jako wyjscie w tym wypadku , a taki zapis jak BB to tylko wygoda zapisau tak ? Zapisując zamiast
#define SEG_A (1<<0) #define SEG_A (1<<PC0) to wytjdzie na to samo i dla mnei to bedzie czytelniejsze :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 lip 2019, o 11:40 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 26 sty 2016
Posty: 1146
Lokalizacja: Kraków
Pomógł: 93

Tak, wyjdzie na to samo. Mirek miał jakiś cel w takim zapisie.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 lip 2019, o 11:57 
Offline
Moderator
Avatar użytkownika

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

feniks_ napisał(a):
#define SEG_A (1<<0) #define SEG_A (1<<PC0) to wytjdzie na to samo i dla mnei to bedzie czytelniejsze

Jak się rozumie zapis z BB to później można pisać to dowolnie - jak się żywnie podoba. Ja używając PC0 w tym zapisie miałem na celu tylko jedno - żeby początkująca osoba w kodzie od razu kojarzyła to z tym na jakim porcie są te segmenty i to tyle ;)

_________________
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: 23 lip 2019, o 22:31 
Offline
Użytkownik

Dołączył(a): 08 sty 2018
Posty: 68
Pomógł: 0

Dzikuje za wszelkie sprosotwania :) Cosik zakumałem :) Ja jesdka narazie w celu obcykania bd pisał litery portów :) Ale jeszcze mam jedno pytanie , mam nadzieje , żę już ostatnie ,żęby wątku nie wydłużac w nieskonczonosc :D Psotanowiłem w ramach ćwiczenia ustawić sobie przerwanie co 5 ms jak z BB ale , z użyciem Timera - 16bitwego . Wiem , że to niezgodne z tehnologia , ale zaszalałem , dla ćwiczeń . Proszę o zrozumienie :) I doszedłem do zezwolen w Compare Match . W tym 16 bitowym to nei wiem który bit odpowiada za takei zezwoelnie :/ dokumentacja co prawda pisze coś tam ale są dwa bardzo podbone wyjaśnienia i nei wiem na który bit sie zdecydowac :/ OCIE1A czy OCIE1B . Nie wiem czy tu wklejać żywcem z noty pdf tekst ,żeby dać obraz sprawy ? Choć P. Mirek to pewnie już na pamięć zna pdf-a do 32-ki Atmegi :D Będe wdzięczny za wyjaśneinei , który bit ustawić :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 lip 2019, o 19:11 
Offline
Użytkownik

Dołączył(a): 08 sty 2018
Posty: 68
Pomógł: 0

Tak wygląda mój kod na miganie co 5 ms Timerem1 16bitowym na zestawwie ATB , ale nei smiga. Tak mysle , że chodzi o to Compare Match ale niestety nie moge nic znależć w internetach :/
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: 21 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

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