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



Teraz jest 15 mar 2026, o 11:51


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 
Autor Wiadomość
PostNapisane: 1 gru 2017, o 16:33 
Offline
Nowy

Dołączył(a): 20 paź 2017
Posty: 13
Pomógł: 0

Witam,

Mam pytanie i wydaje mi się, że raczej znam odpowiedź, że to niemożliwe ale spytać zawsze warto.
Otóż wykorzystuję #define sbi(sfr,bit) (_SFR_BYTE(sfr) |= _BV(bit)) do tego aby ustawiać wysoki stan portu lub jako wyjście. I na przykład wpisując sbi(PORTB,3) działa ale czy jest możliwe, aby wysyłać parametr poprzez USART właśnie "PORTB" zapisywać to do zmiennej. Czyli przychodzi mi parametr i przypisuje to tak sbi(parametr,3);
Kompilator oczywiście tutaj nie robi błędu ale niestety to nie działa. Rozumiem, że jest to tzw. "Reserved word" i nie ma takiej możliwości?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 gru 2017, o 19:12 
Offline
Użytkownik

Dołączył(a): 25 lip 2013
Posty: 2605
Pomógł: 129

Koledze chyba chodzi o przesyłanie o to by po UART wysyłać komendy, którym portem ma coś tam uC zrobić?
Da się tylko trzeba to odpowiednio oprogramować ręcznie - nie da się tak bezpośrednio jak kombinujesz :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 gru 2017, o 20:13 
Offline
Moderator
Avatar użytkownika

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

PORTx

DDRx

PINx

to TYLKO adresy ;) więc da radę to zrobić ;) chociaż nie ukrywam, że jeśli chodzi o język C - to troszkę "przedziwne" podejście ;)

_________________
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: 1 gru 2017, o 23:38 
Offline
Nowy

Dołączył(a): 20 paź 2017
Posty: 13
Pomógł: 0

Potrzebuję to zrobić ponieważ, tworzę sobię apkę w javie do obsługi podłączanych urządzeń które są sterowany przez komendy wysyłane przez USART. No i po prostu chcę zrobić coś takiego, że wysyłam komendę załóżmy do pomiaru MEAS=B,7 czyli wykonanie mojej funkcji o parametrach B oraz 7. Gdzie B to adres a 7 to numer portu.
Tylko, że w taki sposób to muszę sprawdzać za każdym razem przy wykonaniu clearbit albo setbit czy if ( strcmp( portName, "B" ) == 0 ) i dopiero setbit(PORTB,drugiparametr); bo do tej funkcji jeszcze wchodzą inne funkcje.
A gdybym mógł zrobić, że wysyłam komendę MEAS=PORTB, 7. To od razu wyłuskuje pierwszy parametr i drugi parametr nie muszę nic sprawdzać. Tylko wpisuje setbit(pierwszyparametr,drugiparametr);
Czy ma ktoś jakiś pomysł żeby coś takiego zrobić?

------------------------ [ Dodano po: 56 minutach ]

Dobra już wiem jak udało się :)

Zmieniłem na
#define sbi2(sfr,bit) (_SFR_IO8(sfr) &=~_BV(bit))
#define cbi2(sfr,bit) (_SFR_IO8(sfr) |= _BV(bit))

I teraz zamiast DDRB wpisuje 4 na podstawie bibliotek wbudowanych atmela "#define DDRB _SFR_IO8(0x04)"

Także parametr przychodzący z UART konwertuje atoi i działa. Jak chce PORTB lub PINB to dodaje +1 lub -1 bo są numerowane po kolei.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 gru 2017, o 01:57 
Offline
Nowy

Dołączył(a): 20 paź 2017
Posty: 13
Pomógł: 0

Przeczytaj mojego edita. Właśnie już nic nie muszę sprawdzać.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 gru 2017, o 16:56 
Offline
Nowy

Dołączył(a): 20 paź 2017
Posty: 13
Pomógł: 0

dambo napisał(a):
no to spoko :)


W sumie to dzięki bo twoja podpowiedź mnie na to naprowadziła, a w zasadzie zmusiła przejście z MkClipse'a na Eclipse'a. Bo w programie Pana Mirka niestety nie ma opcji ctrl+klik myszy.



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 1 gość


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