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



Teraz jest 8 maja 2026, o 13:12


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 16 ] 
Autor Wiadomość
PostNapisane: 4 maja 2016, o 09:43 
Offline
Nowy

Dołączył(a): 04 maja 2016
Posty: 8
Pomógł: 0

Witajcie!

//info do moderacji - jeśli jest jakiś odpowiedni temat, dział na takie pytania proszę o przeniesienie//

Początki w programowaniu są trudne. To wie każdy. Szukam, szmeram analizuję i nie mogę dojść końca

Potrzebuję wysterować dwa porty np. PB1, PB2 Atmegi328 tak aby PB1 właczył mi stan wysoki dwa razy z np. delay 10 ms po czym przeszedl do PB2 i zrobil to samo.. Proste? Jednak za cholerę nie mam pomysłu jak to napisać.
Używanie pętli while chyba tutaj nie da rady.

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


Takie coś też nie działa. Prosiłbym o wytłumaczenie.



Ostatnio edytowano 4 maja 2016, o 12:44 przez Rafal998, łącznie edytowano 3 razy

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 maja 2016, o 10:02 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 lip 2013
Posty: 208
Lokalizacja: Kielce
Pomógł: 15

Witam

A co to za konstrukcja: "PORTB ^= (1<" ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 maja 2016, o 10:06 
Offline
Nowy

Dołączył(a): 04 maja 2016
Posty: 8
Pomógł: 0

Teraz powinno być lepiej - Wrzuciłem kod w [syntax] i ucięło - czemu, nie wiem.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 maja 2016, o 10:09 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 lip 2013
Posty: 208
Lokalizacja: Kielce
Pomógł: 15

Tak na szybko - nie widzę na końcu klamry } - ale może to kwetia nie wklejenia wszystkiego.

Czy przed pętlą główną ustawiłeś piny PB1 i PB2 jako wyścia?

DDRB |= (1<<PB1) | (1<<PB2);


Używasz operacji negacji na pinie więc w jednym obiegu pętli stan wysoki będziesz miał tylko jeden raz na kazdym pinie.

Domyślnie masz po resecie atmegi zero. Pierwsze "^=" ustawi Ci tam jedynkę. Po 3 ms znowu negujesz - czyli ustawiasz zero.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 maja 2016, o 10:15 
Offline
Nowy

Dołączył(a): 04 maja 2016
Posty: 8
Pomógł: 0

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

Więc co zmienić, aby móc wysterować porty po mojej mysli? Nie rozumiem jeszcze tych pętli, przerwań - zaczynam. Jednak chcialbym teorie utrwalać praktyką - tak mi się latwiej uczy.



Ostatnio edytowano 4 maja 2016, o 12:43 przez Rafal998, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 maja 2016, o 10:47 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 sty 2013
Posty: 1760
Pomógł: 196

Witam
Po pierwsze programy wklejamy:
listing kodu: SYNTAX wybierz - C.
Co do Twojego kodu - ma działać, tylko dla testów wprowadź _delay_ms(500) i obserwuj zachowanie LED'ów.
Inaczej niż zakładasz ale ma działać, a Ty obserwując zrobisz mały kroczek w programowaniu.

Pozdr.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 maja 2016, o 10:49 
Offline
Nowy

Dołączył(a): 04 maja 2016
Posty: 8
Pomógł: 0

Podczas wrzucania w Syntax, ucinało część kodu. Oczywiście, że standardowy kod działa, dioda miga. Jednak chcialbym dojść do tego, co zrobić by szlo po mojej myśli



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 maja 2016, o 11:14 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 lip 2013
Posty: 208
Lokalizacja: Kielce
Pomógł: 15

Tak jak Ci napisałem wyżej. Chcesz żeby 2 razy Ci się zapaliła, a tylko raz ustawiasz stan wysoki. Jeszcze kwestia jak masz tą diodę podłączoną.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 maja 2016, o 11:18 
Offline
Użytkownik

Dołączył(a): 10 lip 2015
Posty: 334
Pomógł: 32

Ale co dokładnie chcesz uzyskać? Dwa impulsy o określonej długości? Może chcesz wystawić 1 na wyjściu i po 10ms znowu 1 bez ustawiania 0 wcześniej?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 maja 2016, o 11:49 
Offline
Nowy

Dołączył(a): 04 maja 2016
Posty: 8
Pomógł: 0

Dioda w stanie wysokim świeci. Podłączona jest anodą do atmegi.

Najprościej będzie tak -

https://www.youtube.com/watch?v=UyVU9cFtGNc

Zależy mi na takim efekcie.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 maja 2016, o 12:10 
Offline
Użytkownik

Dołączył(a): 02 gru 2015
Posty: 568
Pomógł: 28

w pętli while napisz tak

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


i analogicznie to samo dla PB1 w dalszej części kodu w pętli while.
delay(em ) ustawiasz czasy gaszenia i świecenia diody.


Autor postu otrzymał pochwałę


Ostatnio edytowano 4 maja 2016, o 12:35 przez tonygryps, łącznie edytowano 2 razy

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 maja 2016, o 12:18 
Offline
Nowy

Dołączył(a): 04 maja 2016
Posty: 8
Pomógł: 0

Dziękuję serdecznie za pomoc! Teraz widzę błąd który popełniłem.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 maja 2016, o 12:22 
Offline
Moderator
Avatar użytkownika

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

[ listingi na forum wstawiamy zgodnie z instrukcją: topic7402.html - obejrzyj proszę KONIECZNIE i popraw - mirekk36 ]

_________________
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: 4 maja 2016, o 12:32 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 gru 2014
Posty: 1540
Pomógł: 269

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

Jak widzisz nic nie obcina, a dużo łatwiej się czyta. ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 maja 2016, o 18:40 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 gru 2014
Posty: 1540
Pomógł: 269

Rafal998 napisał(a):
Zależy mi na takim efekcie.


Myślę, że efekt podobny. ;)
Założyłem sobie, że będzie na tych no, tfu, delayach.
Proszę:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 maja 2016, o 20:17 
Offline
Nowy

Dołączył(a): 04 maja 2016
Posty: 8
Pomógł: 0

Też przydatne :) Próbuję teraz zmodyfikować poprzedni program, korzystając z programu anshar, by dodać przycisk i wlaśnie kilka "trybów pracy". Ale coś nie idzie. Trzeba wziąć książkę do ręki i poczytać co tam Mirek napisał :)



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

Strefa czasowa: UTC + 1


Kto przegląda forum

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