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



Teraz jest 8 lut 2025, o 11:05


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 
Autor Wiadomość
PostNapisane: 20 sty 2013, o 21:22 
Offline
Użytkownik

Dołączył(a): 01 sty 2013
Posty: 169
Pomógł: 0

Czy zna ktoś jakiś chwyt żeby definiować wyjście poprzez definicje, ale warunkowo?
Wiem że to co napiszę poniżej to dyrektywy preprocesora i nie będzie działać, ale chcę zobrazować o co mi chodzi

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


Wiem też, że można ustawić i zmieniać na sztywno ale nie chcę zmieniać całej biblioteki. Może jest na to jakiś sposób?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 sty 2013, o 21:26 
Offline
Użytkownik

Dołączył(a): 27 gru 2012
Posty: 159
Pomógł: 3

Chodzi Ci o to że jeśli podasz PIN2 to on się raz załączy a raz wyłączy?

Takie coś można osiągnąć operatorem przypisania "^="

np tak:
#define PORTB ^= (1<<PB3)

A jeżeli Ci chodzi o to żeby zapalało diode zależnie od warunku kolor który jest zmienną to nie za bardzo no chyba że wrzucisz całą funkcję if() w definicje ale nie warto się takimi sprawami bawić bo zmiejszasz tylko czytelność kodu

A może Ci chodzi o dyrektywę:
#if
....
#endif
?
piszesz:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


a elese to bodajże #eif a umieszczasz go między if'em a end if'em ale nie pamiętam tego na 100%

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 sty 2013, o 21:32 
Offline
Użytkownik

Dołączył(a): 01 sty 2013
Posty: 169
Pomógł: 0

Chodzi mi o to, żeby w zależności od zmiennej o nazwie kolor przypisywał jako wejście 1wire raz portC0 a innym razem port C1

Znam warunkowe definiowanie, ale jak pisałem wyżej to dyrektywy preprocesora i w programie nie będą działać.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 sty 2013, o 22:47 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 13 paź 2011
Posty: 581
Pomógł: 17

W ten sposób jak ty to chcesz zrobić to się nie da.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 sty 2013, o 08:41 
Offline
Użytkownik

Dołączył(a): 01 sty 2013
Posty: 169
Pomógł: 0

OK To skopiuję funkcje w bibliotece i będę wywoływał oddzielnie Dobrze, że jeszcze mam trochę Flash'a



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 sty 2013, o 09:12 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Z założenia magistrala 1-Wire na 1 przewodzie sygnałowym ma wiele układów. Spróbuj rozwiązać to poprzez adresowanie ?

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 sty 2013, o 10:17 
Offline
Użytkownik

Dołączył(a): 27 gru 2012
Posty: 159
Pomógł: 3

Jeśli chcesz zrobić magistrale 1-wire i koniecznie musi być to na wielu przewodach to wystarczy że zaważysz że Wszystkie piny i porty reprezentowane są poprzez adresy.
Wystarczy użyć zmiennej typu uint8_t

Ale to jest na prawdę ostateczność. Lepiej to rozwiązać poprzez adresowanie.

_________________
sig off ;(



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

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