Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

ATMega161 i C4094

20 Sep 2003 09:19 1724 8
  • Level 13  
    Witam wszystkich. Pomocy!!!!!!!!!!!! :(
    Zbudowałem sterownik obsługujący 8 elektrozaworów. Całość sterowana obsługiwana jest z panela na którym są wyświetlacze LED i przyciski. Problem stanowią wyświetlacze obsługiwane układami C4094B. Jeden panel obsługuje 4 wskaźniki po 3 wyświetlacze. Co daje na panelu 12 wyświetlaczy LED.Panele są dwa przełączane wejściem OUTPUT-ENABLE. Obsługiwane są przez 3 układy C4094B. Do jednego wpisywana jest cyfra a do następnych, który wyświetlacz ma zostać załączony. Nawet to działa i pokazuje cyferki ale wszystko miga. Jeśli zwiększę częstotliwość wpisywania to wyświetlacze bledną. Czy jest możliwość programowo coś wykombinować? Bo nie chcę dawać do każdego LEDa zatrzasku. Mam termometr elektroniczny kupiony w sklepie(zestaw do montażu) Układ jest podobny z tym, że obsługuje tylko 6 wyświetlaczy LED i zbudowany jest na dwóch układach, ale świeci mocno bez migotania. Jak jest napisany taki program w C.
    PORTA.5 = CLOCK
    PORTA.6 = DANE
    PORTA.7= STROBE

    Może ktoś z tym walczył. Napiszcie kawałek programu który to obsługuje. Wiem, że wielki TDV napewno z tym tematem sobie poradzi, ale czy zechce zająć się taką głupotką?

    Jeszcze jedno. W CodeVision AVR ver.1.18 w czasie próby zaprogramowania ATMega161 wywala mi komunikat, że bit SIPEN=1 i przerywa programowanie. Tego bitu nie można zmienić bo w miejscu gdzie są flagi i gdzie on powinien być jest puste miejsce. Natomiast wersja edukacyjna obecnie na topie programuje go bez problemu lecz tylko do 2 k. a później no cóż komunikat, że to werjsca eduk..ble ble.W czym może tkwić problem, bo nie mam czym tego powyżej 2k zaprogramować. Mój programator "AVR-51 Prog" nie ma w swoim spisie układów ATMega.

    Dzięki za przykłady. Narazicho :o
    Czy Twoje urządzenia IoT są bezpieczne? [Webinar 22.06.2021, g.9.00]. Zarejestruj się za darmo
  • Level 33  
    Programowo tego nie porawisz, wadą wyświetlania multipleksowanego jest własnie miganie. Eliminacja tylko poprzez zwiększenie częstotliwości odświeżania. CO do blednięcia to poprostu zwiększ prąd płynący przez segmenty.
  • Level 13  
    Próbowałem zmniejszyć rezystory na katodach i nic nie jaśnieje (było 330 jest 100 om) .Próbowałem zmienić rezystory na tranzystorach załączających anody (było 2k2 jest 1k) i nic. To co ? Muszę dawać zatrzaski do każdego LEDa ? Jakoś to wykombinuję , a co z programowaniem powyżej 2k w CodeVision ? Komunikat to SPIEN=1 a nie SIPEN=1. Dlaczego wersja edukacyjna programuje i nie pokazuje komunikatu a ta robi problem?
    CHŁOPAKI POMOCY!!!!!!!!! :!:
  • Level 42  
    A co do słabego świecenia to zmierz prąd diody i spadek napięcia na tranzystorach. Może poprostu Twoje źródło zasilania jest "za słabe".
  • Level 13  
    Narazie utknąłem w miejscu z powodu braku możliwości programowania, ale jak się z tym uporam to napiszę procedurkę zatrzymującą zegar co powinno spowodować zatrzymanie wyświetlanego LEDa. Wtedy da się wszystko ładnie pomierzyć. Narazie dzięki za podpowiedź. Coś mam jeszcze nie tak z przesyłaniem do rejestrów bo lekko świecą mi się segmenty które powinny być wygaszone. Sądzę, że to ma związek z sygnałem STROBE. Jeśli macie taką procedurę gdzieś pod ręką to podeślijcie.
    Narazicho i DZIĘKI. :oops: :sm2:
  • Level 42  
    Bulik wrote:
    ale jak się z tym uporam to napiszę procedurkę zatrzymującą zegar co powinno spowodować zatrzymanie wyświetlanego LEDa. Wtedy da się wszystko ładnie pomierzyć.
    Tylko uważaj bo w stanie statycznym przez diody powinien płynąć znacznie większy prąd i mogą się nieco "przysmarzyć".
  • Level 15  
    Jeżeli okaże się że program masz w porządku a wyświetlacze dalej słabo świecą, to spróbuj dać takie o większej jasności, czasami różnica jest kolosalna przy sterowaniu multipleksowo.
    Co do SPIEN to jest to bezpiecznik, który jeżeli jest zaprogramowany (czyli =0) to pozwala na programowanie szeregowo (przez złącze SPI). Standardowo we wszystkich AVR-a jest zaprogramowany. Zmienić go można tylko poprzez programowanie równoległe
  • Level 22  
    Jeżeli masz jeszcze jakieś wolne porty (bity) to może spróbuj wysyłać dane do trzech wyświetlaczy jednocześnie (tak mam, ale dla dwóch LCD).
    PORTA.3 = CLOCK
    PORTA.4 = DATA1 (pierwszy)
    PORTA.5 = DATA2 (drugi)
    PORTA.6 = DATA3 (trzeci)
    PORTA.7 = STROBE

    U mnie w dodatku używam 74HCT164 gdzie nie występuje sygnał STROBE. Zmiana jest na tyle szybka, że nie zdążą się zapali "błędne " segmenty.
    Oczywiście zmienne DATA przygotowane są wcześniej.
  • Level 13  
    Rozwiązanie jest ciekawe, ale chyba do następnego projektu.Bo ten elektronicznie jest gotowy. Żeby puścić 3 sygnały DATA jednocześnie muszę przerobić płytę sterownika i płyty wyświetlaczy (2 panele po 12 wyświetlaczy LED).
    Problem z innej beczki. Pisząc program w CodeVisionAVR ver. 1.0.1.8 nagle zaczął pokazywać się błąd "Error occured during assembly". Jak mu usunę dowolną linię w której jest funkcja if to jest OK. Wniosek nasuwa się taki, że linia jest poprawnie napisana. Problem stanowi albo długość kodu albo zbyt duża liczba warunków if.
    W obec czego mam pytanie. Co z tym fantem zrobić, żeby to przeskoczyć. Lub gdzie od ręki w okolicach Kielc, Częstochowy, Opola, Wrocławia można kupić CodeVisionAVR ( legalny ). Potrzebuję dokładny namiar.
    LUDZISKA TO JEST PILNE - POMOCY. :cry:
pcbway logo