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



Teraz jest 23 kwi 2026, o 16:52


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 
Autor Wiadomość
PostNapisane: 25 cze 2016, o 12:46 
Offline
Nowy

Dołączył(a): 25 cze 2016
Posty: 3
Pomógł: 0

Witam
Na wstępie chciałbym powitać wszystkich na forum i oznajmić, że stawiam pierwsze kroki .
Zakupiłem niedawno płytkę stykową z atmegą 8 , diodami rezystorami , przyciskami itd itp.
Prześledziłem poradniki na youtube i zacząłem powoli stawiać pierwsze kroki w programowaniu .
Otóż jak każdy początkujący mam podłączony do procesora programator oraz diodę .
Podstawowe programy typu zapal i zgaś diodę potrafię napisać, natomiast założyłem sobie że
chciałbym aby moja dioda migała z przyśpieszeniem bądź opóźnieniem tzn . pierwszy delay 100 ms
drugi 200 ms 3ci - 300 ms itd . Doczytałem o zakresie argumentu funkcji czyli 262,14 ms oraz o tym
że argument musi być stały . Mój kod źródłowy wygląda następująco :

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

Cytuj:
#define F_CPU 1000000 <---- ZAPAMIĘTAJ jedno, tego NIGDY NIE USTAWIAMY W KODZIE - mirekk36

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

Problem tkwi w tym że dioda mruga ze stałą częstotliwością .

Ps. Słyszałem również o BB i właśnie chce się wesprzeć wiedzą tam zawartą tylko chciałem dopytać zaawansowanych
gdzie mogę ją dostać w najpewniejszej formie i najszybciej . Pytam bo ostatnio na allegro spotykam sprzedawców którzy
wysyłają towar po 10 dniach :( .

Ps. Dzięki za odpowiedzi z góry i prosiłbym o wyrozumiałość w lakonicznych pytaniach .
Dzięki Artek .



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 cze 2016, o 13:04 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

BB ? :)
tylko tu: https://www.sklep.atnel.pl/pl/p/KSIAZKA-I-wydanie-2/75
;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 cze 2016, o 13:13 
Offline
Nowy

Dołączył(a): 25 cze 2016
Posty: 3
Pomógł: 0

Dzięki .Zatem pierwszy problem już rozwiązany i BB zakupiony .
A co mam nie tak w kodzie ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 cze 2016, o 13:22 
Offline
Moderator
Avatar użytkownika

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

mr_arczi napisał(a):
A co mam nie tak w kodzie ?

proszę bardzo pierwszą rzecz - mega babola już ci zaznaczyłem na czerwono w pierwszym poście

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

poza tym ten kod z pierwszego postu nawet nie może działać bo zrobiłeś pomieszanie z poplątaniem np ... dałeś funkcję mdelay wewnątrz ciała funkcji main - no to nawet nie może się skompilować a ty piszesz że niby miga ze stałą częstotliwością jakąś ;)

------------------------ [ Dodano po: 4 minutach ]

Kolejna rzecz po której widać, że do tej pory nadużywałeś tylko arduino to niestety taka pozostałość przykra wtedy zostaje, i ludzie na oślep bez zrozumienia typów - wszędzie dają int
mr_arczi napisał(a):
int i;


nawet gdy zmienna ma później przyjmować wartość max 9
mr_arczi napisał(a):
for ( i=0 ; i < 10; i++)


------------------------ [ Dodano po: 6 minutach ]

do tego pewnie nie ustawiłeś fusebitów w procku i do tego jeśli nie korzystasz z Eclipse tylko np kociego Atmel Studio to idę o zakład , że nie ustawiłeś w projekcie prawidłowo F_CPU (widać to właśnie po tym, że nieudolnie próbujesz to w kodzie zrobić) .... zostaw Atmel Studio i zobacz sobie DOKŁADNIE to:

http://mirekk36.blogspot.com/2015/07/ec ... ogram.html

a zobaczysz, że ci w końcu wyjdzie i zacznie migać

Oczywiście BB to podstawa - poczytaj ją koniecznie - żebyś pisał kod od początku ze zrozumieniem a nie na zasadzie zgaduj zgadula albo - że coś gdzieś tam w necie było i próbuję podobnie ... bo to wtedy zwykle tak jest, że "nie wychodzi"

_________________
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: 26 cze 2016, o 07:11 
Offline
Nowy

Dołączył(a): 25 cze 2016
Posty: 3
Pomógł: 0

Dziękuje za odpowiedź .
Korzystam oczywiście z Eclipsa Marsa zainstalowanego według bloga .
Do tej pory przeglądałem różne źródła na temat programowania ATMegi stąd wzięła się definicja taktowania w kodzie programu .
Typ int na sztywno to faktycznie zły nawyk który już szybko zmieniam .
Oczywiście postanowiłem jeszcze raz posprawdzać ustawienia Fusów ( chociaż we fusach uproszczonych dużo ich nie pozmieniałem ) .
Jeszcze raz sprawdziłem deklaracje procesora w projekcie . Przerobiłem troszkę program i wualaaaaaa działa:) Oczywiście
kolejne kroki zmotywowały mnie do tego a żeby dioda migała na zmianę raz szybciej raz wolniej i płynnie przechodziła ze swojego stanu .

Mój 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  
PostNapisane: 26 cze 2016, o 08:48 
Offline
Moderator
Avatar użytkownika

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

No są postępy coraz lepiej ale ...

jedno małe albo nawet duże ale

Co u ciebie dzieje się z tymi nawiasami klamrowymi, bo jak na to patrzę to istna masakra ... Nie wspomnę już o prawidłowych wcięciach w programie.... A uwierz mi to równie ważne jak poprzednie rzeczy, więc i tego się naucz ok. Twój obecny kod powinien 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.


zwróć DOBRZE uwagę jakie są zmiany w kodzie (szczególnie na wszystkie odstępy, spacje - no różnice z tym co ty pokazałeś), żebyś nie robił takiej masakry. Inne babole stylu programowania to np, używaj przesunięć ... o ile dobrze zrobiłeś tu:

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



to już tu odstawiłeś kiszkę

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


funkcje pisz POD główną funkcją main(), a nad nią umieszczaj tylko deklaracje funkcji ... zresztą zobacz kod który dla ciebie poprawiłem i zrozum, że to bardzo ważne wskazówki

_________________
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  
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 16 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