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

[ATMEGA32A] [C] Problem z UART oraz wysoka temperatura

kamdz 12 Lis 2017 17:01 447 2
REKLAMA
  • #1 16818429
    kamdz
    Poziom 12  
    Witam wszystkich.
    Podczas dzisiejszej zabawy z Atmegą32a napotkałem 2 problemy.
    Jeden, to dziwnie działający UART: Przy takim kodzie:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Gdy wpiszę mu 0 to dostaję 8, a jak wpiszę 1 to 9, albo jakieś pytajniki... Co tu jest źle?
    Drugi, mniej istotny, ale dziwny i niepokojący to wysoka temperatura atmegi. Przy zasilaniu 3,3V Jest w miarę ok, ale jak dam 5V to Atmega zaczyna się dość mocno grzać. Nie parzy, ale nie jest to normalna temperatura... Atmega na pewno nie spalona, bo po odkomentowaniu środkowej części while() diodki ładnie pulsują. Nie wiem czemu temperatura rośnie, ale niepokoi mnie, czy zaraz nie uszkodzi się atmega.
    Z góry dzięki wszystkim za pomoc.
    Pozdrawiam
  • REKLAMA
  • Pomocny post
    #2 16818483
    JarekC
    Poziom 32  
    Przy inicjalizacji rejestrów określających prędkość transmisji wymagana jest kolejność UBRRH a potem UBBRL.
    Ogólnie w AVRach przy dostępie do rejestrów 16-bitowych wymagana jest przy zapisie kolejność HIGH, LOW a przy odczycie LOW, HIGH.

    Odczuwalne podniesienie temperatury ATMEGA przy normalnej pracy świadczy albo o uszkodzeniu układu albo błędach w podłączeniu.

    JarekC
  • #3 16818498
    kamdz
    Poziom 12  
    Dzięki. Układ przeniosłem na inną płytkę stykową i problem temperatury się rozwiązał, nie wiem co go powodowało, ale ważne, że teraz działa. Po zamianie kolejności wpisów do rejestrów UBRRH i UBRRL Programik działa pięknie. Dzięki :)
REKLAMA