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



Teraz jest 13 lut 2025, o 11:19


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 9 ] 
Autor Wiadomość
PostNapisane: 27 sie 2013, o 09:18 
Offline
Użytkownik

Dołączył(a): 31 mar 2012
Posty: 102
Lokalizacja: Ząbkowice Śl.
Pomógł: 2

Witam

Potrzebował bym jakąś podpowiedz bądź kawałek kodu programu
procek attiny13a

nie wiem czy dobrze i zrozumiale to opiszę a mianowicie:

Jest krańcówka która w zależności od sytuacji jest w stanie przewodzenia chwile lub dłużej np godzinę lub jeszcze dłużej w zależności od potrzeb operatora,
i teraz potrzebował bym aby procek wykonał jedna operację i na tym poprzestał do puki znów krańcówka nie zostanie rozwarta i zwarta ponownie, przy zwarciu ma się wykonać tylko raz i czekać na ponowne zwarcie.Pisałem taki programik ale wychodziły mi jakieś potworki i tak nie działały jak chciałem, przy krótszych czasach mi to działało ale przy dłuższych była lipa. Zaznaczam że jestem na etapie migacza diodowego także proszę o wyrozumiałość.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 sie 2013, o 10:06 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 sie 2012
Posty: 245
Lokalizacja: Kielce
Pomógł: 6

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

_________________
1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796



Ostatnio edytowano 27 sie 2013, o 12:47 przez Wojtek001, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 sie 2013, o 12:16 
Offline
Użytkownik

Dołączył(a): 31 mar 2012
Posty: 102
Lokalizacja: Ząbkowice Śl.
Pomógł: 2

dopisałem coś takiego


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


nie wiem czy dobrze, jakoś dziwnie działa jakby led na pół gwizdka świeciła



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 sie 2013, o 12:50 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 sie 2012
Posty: 245
Lokalizacja: Kielce
Pomógł: 6

Te definicje są dla mnie kompletnie nieczytelne ale co kto lubi.
Z tego co widzę to ty masz te definicje kompletnie źle.


Ja gdy pisałem warunek if założyłem że masz tą krańcówkę na porcie b więc zrobiłem maskę z 1 (& 1) czyli binarnie 0b00000001. Ponieważ ty w w tych nieszczęsnych definicjach piszesz (1<<PB3) to jest równoznaczne z (0b00000001 << 3) = 0b00001000 = 1*2^3 = 8. Czyli nie pisz tej maski dodatkowej w warunku if (& 1) i nie pisz negacji (!) bo ją też masz w definicji.

Ponieważ zakładam że lubisz się użerać z tymi definicjami to zamień
if(!(KEY_DOWN & 1)) //jesli zwarte
na
if(KEY_DOWN) //jesli zwarte
dlatego że tą maskę i ta negacje masz już w definicjach!



Musisz jeszcze odp. na jedną rzecz. Czy gdy uruchamiasz urządzenie (krańcówka rozwarta) to ma się wykonać jeden raz działanie tak jak po rozwarciu krańcówki? (jeśli tak to przy inicjalizacji zmiennej flaga wpisz do niej 1).

chlopek_p napisał(a):
nie wiem czy dobrze, jakoś dziwnie działa jakby led na pół gwizdka świeciła
Opisz dokładnie problem. Dziwnie to może działać, ale dlatego że nie ma eliminacji drgań styków.

_________________
1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 sie 2013, o 13:31 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 lut 2013
Posty: 376
Lokalizacja: Kłopoty-Stanisławy
Pomógł: 33

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

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

_________________
50 znaków Atnela ....



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 sie 2013, o 13:40 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 sie 2012
Posty: 245
Lokalizacja: Kielce
Pomógł: 6

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

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

Tak się składa że w AVR'ach domyślnie wszystkie porty są wejsciami także jest to zbędne zaśmiecanie flash'a (mam nadzieję że optymalizator to wycina).

Co do drugiej linijki, napisałem w poprzednim poście że to czy z początku dioda ma świecić regulujemy wartością zmiennej flaga więc też jest zbędna.

_________________
1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 sie 2013, o 14:33 
Offline
Użytkownik

Dołączył(a): 31 mar 2012
Posty: 102
Lokalizacja: Ząbkowice Śl.
Pomógł: 2

wyjaśnię jak najlepiej potrafię jak to ma działać

załóżmy że na PB0 jest krańcówka (pin jako wejście)
na PB1, PB2, PB3, PB4 (piny jak wyjścia)
gdy zajdzie zdarzenie zadziałanie krańcówki
ma się wykonać program na pinach wyjściowych ale tylko raz ,np: ma się wykonać sekwencja włączenia przekaźników i i je wyłączyć.
nawet kiedy krańcówka będzie zwarta, sekwencja włączania przekaźników ma się powtórzyć kiedy styki krańcówki zostaną rozwarte i ponownie zwarte,

jeszcze będą o męczył jak będę miał problemy to będę pytał



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 sie 2013, o 14:50 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 sie 2012
Posty: 245
Lokalizacja: Kielce
Pomógł: 6

Czyli tylko przy zwieraniu ma być wykonane jednorazowe działanie. W takim razie niedokładnie się zrozumieliśmy ,ale to nic nie szkodzi ; po prostu nie wpisuj nic w tym miejcu "działanie przy rozwarciu" a optymalizator wytnie co zbędne.

I tak jak mówię, przydała by się jeszcze eliminacja drgań.

_________________
1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 sie 2013, o 14:56 
Offline
Użytkownik

Dołączył(a): 31 mar 2012
Posty: 102
Lokalizacja: Ząbkowice Śl.
Pomógł: 2

zrobię tak jak piszesz i zobaczymy co z moich wypocin wyjdzie :)



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

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:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO