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



Teraz jest 11 lip 2026, o 21:42


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 2 ] 
Autor Wiadomość
PostNapisane: 15 sty 2014, o 18:45 
Offline
Nowy

Dołączył(a): 15 sty 2014
Posty: 2
Pomógł: 0

Cześć. Mam mikrokontroler ATtiny2313 wraz z PWMem TLC5940. Do PWMa są podłączone 4 diody LED RGB. Każda ma inaczej świecić.

Mikrokontroler z PWMem jest tak podłączony:
TLC5940 | ATtiny2313
VPRG | GND
SIN | MOSI (pin PB7)
SCLK | UCSK (PB7)
XLAT | OC1A (PB3)
BLANK | OC1B (PB4)
DCPRG | VCC
GSCLK | OC0B (PD5)
SOUT | brak podłączenia
XERR| brak podłączenia

Chcę by każda dioda miała inny kolor (dioda 1- > wyjścia 0 - 2, dioda 2 -> 3 - 5, ...) , oraz każde z wyjść PWMa (od 0 do 11) dawało mi różne jasności koloru.

Próbowałem z Demystifying-the-TLC5940, oraz z innymi przykładami. Ale jestem słaby z tych rzeczy i ciężko mi to wychodzi. Nawet nie wiem czy powyższe piny mam dobrze podłączone. Ktoś może pomóc?


Robię to na projekt na studia. Zostało mało czasu. Do wczoraj miałem inną koncepcję -> statyczne kolory, z jednym natężeniem, bez żadnego PWMa. Ale doszedł mi zamówiony dawno temu PWM (już myślałem, że nie dojdzie) i chcę na szybko jakoś to wmontować tam. A za bardzo czasu już nie mam na próby i błędy, więc pomoc by się jakaś przydała...


EDIT: Używam plików stąd: https://github.com/damiannz/Luciolinae/ ... attiny2313
Wszystko się fajnie kompiluje, ale nie działa na układzie.
Mam taki kod:
Kod:
tlcClass_init();
tlcClass_setAll(jakasliczba od 0 do 4095);
while (tlcClass_update());

Ale nie chce nic działać. Na wyjściach są losowe jasności. Raz dioda świeci słabo, a w innym miejscu mocno, a powinno być tak samo.

EDIT2: Zapomniałem dopisać, że spróbowałem przejść na tryb BITBANG (w kodzie pinoutu do ATtiny z powyższego linku pisze, że SPI nie działa dla ATtiny i BITBANG jest ustawiany automatycznie) i też nic, zmieniając przy okazji te połączenia:
SIN | pin PB1
SCLK | pin PB2

Ale i tak to nic nie daje.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 sty 2014, o 14:50 
Offline
Nowy

Dołączył(a): 15 sty 2014
Posty: 2
Pomógł: 0

BUMP
Dobra, działa mi. Ale mam jeszcze pytanie.

1. Pobieram dane z RS232:
Kod:
uart_getcolors(odebrano, 9); //odebrano to tablica z kolorami

2. Ustawiam wypełnienie:
Kod:
int i, nmb;
for(i = 0; i < 6; i++) {
      nmb = odebrano[i] * 4095 / 255;
      set(i, nmb);
}

3. Wróć do pkt. 1)

I teraz jest problem, bo nie wiem jak zrobić, by mi się napięcie na wyjściach PWM nie zerowało (diody nie mogą gasnąć). Aktualnie zawsze w czasie pobierania danych z RS232 (punkt 1) gasną diody, potem w punkcie 2 się zapalają, potem gasną, itd. A ja chcę by do czasu powrotu do punktu 2 diody cały czas miały to samo napięcie (bez wygaszania w punkcie 1). Próbowałem różne sposoby, ale nic nie wychodzi^^ Jakieś rady?



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

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