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



Teraz jest 23 lut 2025, o 22:24


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 14 ] 
Autor Wiadomość
PostNapisane: 24 wrz 2015, o 15:26 
Offline
Użytkownik

Dołączył(a): 16 lis 2013
Posty: 144
Zbananowany użytkownik

Pomógł: 0

To mój pierwszy program w C (zapożyczony z internetu). Ogólnie wszystko chodzi jak chciałem, prócz jednej rzeczy, której nie mogę się pozbyć. A jest to po włączeniu zasilania szybkie włącz-wyłącz na przekaźniku. Wyjścia domyślnie mają być wyłączone po włączeniu urządzenia i teoretycznie tak jest, prócz właśnie tego przekaźnika.
Układ to ATtiny13, przycisk na pinie PB1, wyjścia na pinie PB0 (przekaźnik) i PB2 (led).

Schemat:
Obrazek

Kod:

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


Mogłby ktoś rzucić fachowym okiem na kod? A może problemem jest rezystor podciągający bazę tranzystora?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 wrz 2015, o 16:06 
Offline
Moderator
Avatar użytkownika

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

A po co dałeś ten R24 ? Przecież on ci powoduje załączenie przekaźnika zanim procesor włączy się do akcji (tak mi się wydaje). Wywal ten rezystor albo włącz go do GND zamiast do VCC

------------------------ [ Dodano po: kilkunastu sekundach ]

Natomiast R25 daj 2,2K


Autor postu otrzymał pochwałę

_________________
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: 24 wrz 2015, o 16:09 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

Zamień PORTB &= OUT na PORTB &= ~OUT

----------------- EDIT
O Mirek mnie uprzedzil wiec nic juz o rezystorze pull up nie musze nic dodawac.

Namazane ze smarta.


Autor postu otrzymał pochwałę

_________________
Usługi druku przestrzennego - www.drumik.pl



Ostatnio edytowano 24 wrz 2015, o 16:13 przez majster, łącznie edytowano 2 razy

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 wrz 2015, o 16:11 
Offline
Moderator
Avatar użytkownika

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

R26 wyliczyłeś ? czy strzeliłeś na chybił trafił ? bo jeśli ma często migać to może ci procka resetować z uwagi na brak poprawnej filtracji zasilania, zobacz o co chodzi w poprawnej filtracji zasilania:
http://mirekk36.blogspot.com/2012/04/mi ... lanie.html

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

majster napisał(a):
Zamień PORTB &= OUT na PORTB &= ~OUT

hehehe SOKOLE oko majster ;) taka mała tylda ;)

_________________
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: 24 wrz 2015, o 18:15 
Offline
Użytkownik

Dołączył(a): 16 lis 2013
Posty: 144
Zbananowany użytkownik

Pomógł: 0

Bez procka w podstawce przekaźnik sam się załączał właśnie przez ten rezystor podciągający bazę. Zamiast do VCC podpiąłem go do GND. R25 dałem większy. Co do R26, to za nim jest jeszcze potencjometr montażowy, którego nie ma na schemacie. Filtracja też się zgadza, chodziło mi o wejścia/wyjścia, więc wrzuciłem nie do końca kompletny schemat :) Zaraz będę testował po poprawkach.
Nie wiem o co chodzi ale po zmianie maila nie dostaję w ogóle powiadomień o odpowiedziach, a mam tę opcję zaznaczoną i e-mail się zgadza.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 wrz 2015, o 19:07 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

majster napisał(a):
Zamień PORTB &= OUT na PORTB &= ~OUT

mirekk36 napisał(a):
taka mała tylda ;)



A w kodzie poprawkę zrobiłeś ?

_________________
Usługi druku przestrzennego - www.drumik.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 wrz 2015, o 21:29 
Offline
Użytkownik

Dołączył(a): 16 lis 2013
Posty: 144
Zbananowany użytkownik

Pomógł: 0

Zrobiłem. Od momentu jak rezystor podciągnąłem do masy, a nie VCC już nie było niechcianego klikania. Bardzo dziękuję za pomoc!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 wrz 2015, o 22:11 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

kRetman4 napisał(a):
Zrobiłem. Od momentu jak rezystor podciągnąłem do masy, a nie VCC już nie było niechcianego klikania. Bardzo dziękuję za pomoc!



Po twojej wypowiedzi wnioskuję że nie zdajesz sobie kolego do końca sprawy że brak TYLDY o takiego znaczka ~ to błąd w programie.


PORTB &= OUT na PORTB &= ~OUT

aż się dziwie że nie otrzymałeś bądź nie widzisz warninga

_________________
Usługi druku przestrzennego - www.drumik.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 wrz 2015, o 22:26 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 maja 2014
Posty: 1089
Pomógł: 34

@majster a czemu chciałbyś tam widzieć warning ? Przecież to chyba jedna z normalnych operacji bitowych

Sent from my GT-I9506 using Tapatalk

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 wrz 2015, o 22:56 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

RafPe napisał(a):
@majster a czemu chciałbyś tam widzieć warning ? Przecież to chyba jedna z normalnych operacji bitowych

Sent from my GT-I9506 using Tapatalk


Tak tyle ze normalna ona będzoe jak przed out bedzie tylda ~ lub zamiast and & bedzie separator |.

A to

PORTB &= OUT

To wybrakowanaoperacja bitowa.

Namazane ze smarta.

_________________
Usługi druku przestrzennego - www.drumik.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 wrz 2015, o 23:21 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 29 sty 2012
Posty: 777
Lokalizacja: Karpicko k. Wolsztyna
Pomógł: 197

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

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

A to jest przecież normalna operacja, która spowoduje wyzerowanie wszystkich bitów oprócz PB0 i PB2. To, że program będzie działał niewłaściwie to inna sprawa. Ale kompilator nie zgłosi warninga bo taka operacja nie jest niepoprawna z punktu widzenia składni języka.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 lis 2015, o 15:10 
Offline
Użytkownik

Dołączył(a): 16 lis 2013
Posty: 144
Zbananowany użytkownik

Pomógł: 0

Sprawdzałem i bez względu na obecność tyldu program działa tak samo - tak jak w zamierzeniu.

Chciałbym do tego dopisać program który zapisywałby ostatnie ustawienie, tak żeby po wyłączeniu zasilania i ponownym włączeniu urządzenie było w taki trybie jak przed wyłączeniem. Laicka sprawa, ale nie umiem sobie z tym poradzić. "C" działa na moją niekorzyść, Bascom był łatwiejszy w przyswojeniu



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 lis 2015, o 18:48 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

kRetman4 napisał(a):
Sprawdzałem i bez względu na obecność tyldu program działa tak samo - tak jak w zamierzeniu.

Chciałbym do tego dopisać program który zapisywałby ostatnie ustawienie, tak żeby po wyłączeniu zasilania i ponownym włączeniu urządzenie było w taki trybie jak przed wyłączeniem. Laicka sprawa, ale nie umiem sobie z tym poradzić. "C" działa na moją niekorzyść, Bascom był łatwiejszy w przyswojeniu



Klego daj jakiś superfaradowy kondensator i po wykryciu zaniku prądu on ci podtrzyma zasilanie na tyle byś mógł jeszcze zapisać swje dane i wstrzymać pracę uC ... a jak zasilanie wróci to procek wznowi pracę odczytując dane z pamięci.


Autor postu otrzymał pochwałę

_________________
Usługi druku przestrzennego - www.drumik.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 lis 2015, o 13:21 
Offline
Użytkownik

Dołączył(a): 16 lis 2013
Posty: 144
Zbananowany użytkownik

Pomógł: 0

Czyli teraz to już za późno, płytka już poskładana. Myślałem, że da się to zrobić programowo. Na początku chciałem zrobić zapis po każdej zmianie stanu, ale szkoda marnować cykle zapisu. W następnym projekcie uwzględnię zewnętrzne elementy niezbędne do zapisu. Ogromne dzięki za pomoc!



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

Strefa czasowa: UTC + 1


Kto przegląda forum

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