AVR problem z procedura...

Sep 12, 2005 4 Replies

W BASCOMIEe chcialem zaimplementowac procedure ktora, dobiera sobie wyjscie za pomoca liczbowego paramtru (u mnie liczba) ...



Glowie i sie i troje i cos nie moge nic zdzialac, bo w BASCOmie jak na moj gust musialby byc typ odpowiadajacy za linie wyjsciowe -czyli np jeden ogolny "pind"...



Nie wiem, co mi radzicie czy moj pomysl jest realny? Probowalem juz intrukjci "case" jak i wpakowanie Pordt.0 - portd.2 do tablicy i rowniez nic tablica byla typu byte...Rowniez "alias" nie pomogloo...


Jesli w bascomie jest to nie mozliwe to czy da sie to zrealizowac np w GCC???



Oto jej kod :



Sub Dioda(liczba As Byte)


Dim Pin As Byte -------> zamias byte musialoby byc chyba -> ogolnie portd a takiego typu nie ma...:/ If Liczba = 0 Then Pin = Portd.0 Elseif Liczba = 1 Then Pin = Portd.1 Elseif Liczba = 2 Then Pin = Portd.2 End If



Set Pin Waitms 30 Reset Pin Waitms 30 End Sub



Co radzicie ?


Rafal


Pewnie da sie w BASCOMie, ale w GCC to by bylo tak:

bool podajpin(unsigned char n) { ((PIND>>n)&1)?true:false; }

Hm... Do tej pory miałem nadzieję, że np.

Dim Zmienna As Byte Set portd.Zmienna

zadziała... Nie zdążyłem jeszcze tego sprawdzić, a już mnie rozczarowałeś ;>.

Pytanie pewnie głupie - próbowałeś w powyższy sposób?

Arczi napisał(a):

Jezeli chodzi wam o taki przypadek, ze

zmienna=3 to set portd.zmienna ustawi portd.3 to jak najbardziej dziala. swoja droga ciekawe jak sie zachowuje kiedy wartosc zmiennej zmienna >7 ... :))

Arczi napisał(a):

Jezeli chodzi Wam o dzialanie takie, ze:

zakladajac, ze zmienna=3 to Set portd.zmienna ustawi na portd.3 '1' ,to jak najbardziej dziala.

A zmienna ogolna 'PortD' istnieje, tyle ze wpisujac cos do tej zmiennej ustawiamy stany na wszystkich koncowkach portu jednoczesnie...

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required