Jak w temacie - cała sprawa dotyczy diody RGB sterowanej switchem - całość chciałbym zrealizować w oparciu o attiny13.
Jako, że moje doświadczenie w pisaniu programów w Bascomie jest prawie żadne i dopiero co zaczynam prosiłbym, żeby ktoś z doświadczeniem pomógł mi w napisaniu programu w Bascomie, który będzie sterował pracą diody RGB za pomocą jednego switcha...
Nie spotkałem się jeszcze z takim projektem dlatego piszę to tutaj i liczę na to, że ktoś w ramach walki z nudą poświęci mi trochę czasu i pomoże w napisaniu sensownego programu.
Chcę żeby to było w bascomie - bo póki co to C ani ASM mnie nie interesuje - do moich prostych celów nic innego nie potrzebuje.
Schemat układu znajduje się poniżej.
Chciałem wykorzystać prosty procek AVR ATTINY13.
Założenia działania układu mają być następujące:
> Każdorazowe naciśniecie przycisku z czasem krótszym niż 2 sekundy będzie powodować zmianę koloru przez odpowiednie załączanie konkretnej diody/diód czyli:
- czerwona
- zielona
- niebieska
- czerwona + zielona
- czerwona + niebieska
- zielona + niebieska
- czerwona + zielona + niebieska
> naciśniecie i przytrzymanie przycisku na czas dłuższy lub równy 2 sekundy spowoduje całkowite zgaszenie diód
> jeśli układ będzie wyłączony - to krótki impuls poniżej 2 sekund ponownie załączy cały układ i wszystko zacznie świecić
Nie pytam czy to jest możliwe bo na pewno jest - bascom, avr i wiedza potrafią zrobić praktycznie wszystko...
Czy ktoś mi pomoże w takim prostym projekcie?
Wcześniej ten temat już tu był, ale uznano, ze to "roszczenie" więc zamieszczam wynik moich prac - tak jak pisałem jestem zupełnie początkujący i zielony w temacie dlatego to co mam zostało przetestowane w "ISIS" i działa, ale nie jest tak jak bym chciał dlatego proszę o pomoc w uzupełnieniu programu.
Schemat:
Program:
I teraz co się dzieje i czego brakuje:
Po pierwsze - chce zastosować attiny13 a nie 2313 - zrobiłem to na 2313 bo moge osobno konfigurować porty B i D co jest dla mnie łatwiejsze - to "13-stki" muszę to przepisać tylko na porty B Smile
Owszem dioda zmienia kolory, ale jest to zgodne z liczeniem binarnym w góre - i moje pytanie co trzeba by zmienić w programie, żeby zaświecanie się kolorów było takie jak ja bym chciał czyli w takiej kolejności:
- czerwona + zielona + niebieska (tutaj akurat jest ok bo przy starcie zapalają się wszystkie)
- czerwona
- zielona
- niebieska
- czerwona + zielona
- czerwona + niebieska
- zielona + niebieska
Jak zrealizować funkcję takie jak pisałem wyżej - przytrzymanie przycisku powyżej około 2 sek powoduje wygaszenie wszystkich diód natomiast podczas wygaszonych krótkie naciśniecie powoduje powrót do poprzedniego stanu?
Jako, że moje doświadczenie w pisaniu programów w Bascomie jest prawie żadne i dopiero co zaczynam prosiłbym, żeby ktoś z doświadczeniem pomógł mi w napisaniu programu w Bascomie, który będzie sterował pracą diody RGB za pomocą jednego switcha...
Nie spotkałem się jeszcze z takim projektem dlatego piszę to tutaj i liczę na to, że ktoś w ramach walki z nudą poświęci mi trochę czasu i pomoże w napisaniu sensownego programu.
Chcę żeby to było w bascomie - bo póki co to C ani ASM mnie nie interesuje - do moich prostych celów nic innego nie potrzebuje.
Schemat układu znajduje się poniżej.
Chciałem wykorzystać prosty procek AVR ATTINY13.
Założenia działania układu mają być następujące:
> Każdorazowe naciśniecie przycisku z czasem krótszym niż 2 sekundy będzie powodować zmianę koloru przez odpowiednie załączanie konkretnej diody/diód czyli:
- czerwona
- zielona
- niebieska
- czerwona + zielona
- czerwona + niebieska
- zielona + niebieska
- czerwona + zielona + niebieska
> naciśniecie i przytrzymanie przycisku na czas dłuższy lub równy 2 sekundy spowoduje całkowite zgaszenie diód
> jeśli układ będzie wyłączony - to krótki impuls poniżej 2 sekund ponownie załączy cały układ i wszystko zacznie świecić
Nie pytam czy to jest możliwe bo na pewno jest - bascom, avr i wiedza potrafią zrobić praktycznie wszystko...
Czy ktoś mi pomoże w takim prostym projekcie?
Wcześniej ten temat już tu był, ale uznano, ze to "roszczenie" więc zamieszczam wynik moich prac - tak jak pisałem jestem zupełnie początkujący i zielony w temacie dlatego to co mam zostało przetestowane w "ISIS" i działa, ale nie jest tak jak bym chciał dlatego proszę o pomoc w uzupełnieniu programu.
Schemat:
Program:
Config Portb = &B00000111
Portb = &B00000000
Config Portd = &B0000000
Portd = &B1111111
Do
Debounce Pind.0 , 0 , Zwieksz , Sub
Loop
End
Zwieksz:
Incr Portb
Return
I teraz co się dzieje i czego brakuje:
Po pierwsze - chce zastosować attiny13 a nie 2313 - zrobiłem to na 2313 bo moge osobno konfigurować porty B i D co jest dla mnie łatwiejsze - to "13-stki" muszę to przepisać tylko na porty B Smile
Owszem dioda zmienia kolory, ale jest to zgodne z liczeniem binarnym w góre - i moje pytanie co trzeba by zmienić w programie, żeby zaświecanie się kolorów było takie jak ja bym chciał czyli w takiej kolejności:
- czerwona + zielona + niebieska (tutaj akurat jest ok bo przy starcie zapalają się wszystkie)
- czerwona
- zielona
- niebieska
- czerwona + zielona
- czerwona + niebieska
- zielona + niebieska
Jak zrealizować funkcję takie jak pisałem wyżej - przytrzymanie przycisku powyżej około 2 sek powoduje wygaszenie wszystkich diód natomiast podczas wygaszonych krótkie naciśniecie powoduje powrót do poprzedniego stanu?