logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

ATmega328P i 74HC595 - Diody LED nie reagują poprawnie, kod w C

rotnemed 04 Wrz 2016 19:26 1575 7
REKLAMA
  • #1 15911559
    rotnemed
    Poziom 8  
    Witam, próbuje sterować diodami LED za pomocą uC ATmega328p oraz rejestru przesuwnego 74HC595, lecz diody w ogóle nie reagują (zapalają się wszystkie lub w różnych losowych kombinacjach).

    Kod:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #2 15911637
    BlueDraco
    Specjalista - Mikrokontrolery
    Brak podłączenia AGND!

    Pętla w funkcji righttoleft jest nieskończona - po pierwszych 8 obiegach stałe zero.
  • REKLAMA
  • #3 15911661
    rotnemed
    Poziom 8  
    Przepraszam, połączenie AGND fizycznie istnieje, tylko nie umieściłem go na schemacie.
    Dziękuję, te pętle pisałem tak na szybko, chciałem póki co sprawdzić czy cokolwiek działa.

    EDIT:
    Ustawiłem pin SS jako wyjście i podpiąłem go pod rejestr przesuwny i teraz moje "animacje" LEDów działają... ale tylko z wpiętym programatorem USBAsp. Aby kod działał, to po wgraniu go muszę wyjąć i włożyć programator z portu USB.
    Czym jest to spowodowane?
  • REKLAMA
  • #4 15911966
    excray
    Poziom 41  
    Ustaw PB2 jako wyjście.
  • REKLAMA
  • #5 15911974
    rotnemed
    Poziom 8  
    rotnemed napisał:
    EDIT:
    Ustawiłem pin SS jako wyjście


    Właśnie to zrobiłem ^^
    Przed chwilą edytowałem post.
  • #6 15912397
    tmf
    VIP Zasłużony dla elektroda
    @rotnemed Najpierw SS ustaw jako wyjście, a potem konfiguruj SPI. Jeśli SS jest wejściem to niekoniecznie da sie ustawić tryb master SPI - poczytaj notę procka. Poza tym nie używaj 595, które ma niewielką wydajność prądową i wymaga rezystorów. Do LEDów są dedykowane rejestry, np. z serii SCT.
  • #7 15912776
    rotnemed
    Poziom 8  
    Dopiero zaczynam, więc póki co bawię się tym co mam.
    Zamieniłem kolejność ale wszystko dalej działa tylko z wpiętym programatorem.

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • #8 15913659
    rotnemed
    Poziom 8  
    Dziękuje wszystkim za rady. Problem rozwiązało wypięcie programatora (a konkretnie wejścia MOSI) z płytki stykowej.
REKLAMA