Aktyw Forum

Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.

Sprawdź punkty Zarejestruj się

Bascom na C

Titton
-
-
Posty:2
Rejestracja:2 mar 2006, o 10:11
Lokalizacja:Chorzów
Bascom na C

Postautor: Titton » 14 kwie 2006, o 00:45

mam taki mały problem pewnie dlatego ze dopiero co zaczalem sie bawic uC pod avr-gcc :-D. wiec chciałbym co kolejna pętle wpisywać do PORTC.4 kolejna wartość zmiennej (potrzebne do 74hc595) na przykładzie bedzie to lepiej widać:

// Przesłanie 8 bitów zaczynając od MSB
for (i=7 ; i==0 ; i--)
{
// TAK TO WYGLĄDAŁO W BASCOMie a niebardzo mam teraz pomysł jak to przełożyć na C.
// PORTC.4 = Nadajnik_irpd.i
....
}

Awatar użytkownika
pajaczek
Moderator
Moderator
Posty:2653
Rejestracja:24 sty 2005, o 00:39
Lokalizacja:Winny gród

Re: Bascom na C

Postautor: pajaczek » 14 kwie 2006, o 01:35

for (i=7 ; i==0 ; i--)
To na poczatek pomysl, dlaczego ta petla sie nie wykona...

Jurek Szczesiul
-
-
Posty:175
Rejestracja:10 paź 2003, o 20:44
Lokalizacja:Białystok
Kontaktowanie:

Re: Bascom na C

Postautor: Jurek Szczesiul » 14 kwie 2006, o 07:54

chciałbym co kolejna pętle wpisywać do PORTC.4 kolejna wartość zmiennej (potrzebne do 74hc595) na przykładzie bedzie to lepiej widać:
To jest mały przykład właśnie dla 595:

Kod: Zaznacz cały

#define LEDCLK PC7 #define SET_LEDCLK (PORTC |=_BV(LEDCLK)) #define CLEAR_LEDCLK (PORTC &=~_BV(LEDCLK)) #define TOGGLE_LEDCLK (PORTC ^=_BV(LEDCLK)) #define LEDSTR PA7 #define SET_LEDSTR (PORTA |=_BV(LEDSTR)) #define CLEAR_LEDSTR (PORTA &=~_BV(LEDSTR)) #define TOGGLE_LEDSTR (PORTA ^=_BV(LEDSTR)) #define LEDDAT PA6 #define SET_LEDDAT (PORTA |=_BV(LEDDAT)) #define CLEAR_LEDDAT (PORTA &=~_BV(LEDDAT)) #define TOGGLE_LEDDAT (PORTA ^=_BV(LEDDAT)) void SendByte(char bytval) { int i; for (i=0;i<8;i++) { if(bytval & 0x80) SET_LEDDAT; else CLEAR_LEDDAT; _delay_us(1); SET_LEDCLK; _delay_us(1); CLEAR_LEDCLK; _delay_us(1); bytval <<= 1; } SET_LEDSTR; _delay_us(1); CLEAR_LEDSTR; _delay_us(1); }
_delay_us() to funkcja biblioteczna avr-libc.
Tutaj wstawiona ze względu na podłączenie 595 tasiemką ( pojemność
spłaszcza zbocza i trzeba lekko spowolnić zapis ).

Pozdrowienia Jurek S.

Titton
-
-
Posty:2
Rejestracja:2 mar 2006, o 10:11
Lokalizacja:Chorzów

Re: Bascom na C

Postautor: Titton » 14 kwie 2006, o 09:48

To na poczatek pomysl, dlaczego ta petla sie nie wykona...
No dokladnie to byla nieprzemyslana petla o 1:45 ;-) ale juz poprawilem.

P.S. Dziekuje wszystkim za pomoc a Jurkowi Szczesiul za programik..

Wróć do „Projektowanie PCB, programy EDA, CAD, narzędziowe”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 0 gości