Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[C][USART] - Po zmianie procesora nagłe błędy

waldek454_33 08 Wrz 2012 13:54 765 5
  • #1 08 Wrz 2012 13:54
    waldek454_33
    Poziom 7  

    Witam,

    Wcześniej bawiłem się na Atmega8. Wszystko działało pięknie, na LCD wyświetlało się wszystko bardzo dobrze.
    Po zmianie procesora na Atmega32 coś się psuje z USART.

    Moja konfiguracja to 8MHz, prędkość 9600.
    Na wyświetlaczu dostaje dziwne krzaki.
    Zwykłe wyświetlanie działa bez problemu.

    Tak wygląda mój kod:

    Kod: c
    Zaloguj się, aby zobaczyć kod

    0 5
  • #2 08 Wrz 2012 15:19
    atom1477
    Poziom 43  

    Włączyłeś przerwanie od UARTa a nie masz jego obsługi. Choć to pewnie nie ma wpływu na krzaki na LCD.

    0
  • #3 08 Wrz 2012 20:10
    tmf
    Moderator Mikrokontrolery Projektowanie

    To co pisze kolega atom to jedno, drugie to pewnie standardowy błąd - korzystasz w wewnętrznego generatora RC 8 MHz, a nie kwarcu? To masz problem, ten generator nie jest kalibrowany z dokładnością, ani nie ma stabilności wystarczającej do wykorzystania go do taktowania transmisji asynchronicznej RS232.

    0
  • #4 09 Wrz 2012 14:07
    atom1477
    Poziom 43  

    tmf napisał:
    To co pisze kolega atom to jedno, drugie to pewnie standardowy błąd - korzystasz w wewnętrznego generatora RC 8 MHz, a nie kwarcu? To masz problem, ten generator nie jest kalibrowany z dokładnością, ani nie ma stabilności wystarczającej do wykorzystania go do taktowania transmisji asynchronicznej RS232.

    Uważaj, bo zaraz Mirekk36 napisze coś odwrotnego :D
    waldek454_33: pokaż cały kod. Bo w sumie nie wiadomo czy jednak gdzieś tam nie masz procedury obsługi przerwania od UARTa.
    Z tego co podałeś nie da się wywnioskować co jest nie tak inaczej niż przez zgadywanie.

    0
  • #5 09 Wrz 2012 16:45
    Dar.El
    Poziom 40  

    Można przy wewnętrznym taktowaniu używać transmisji USART. Ale trzeba generator wewnętrzny skalibrować, używać zawsze w tej samej temperaturze i przy tym samym napięciu.

    0
  • #6 09 Wrz 2012 18:51
    tmf
    Moderator Mikrokontrolery Projektowanie

    Dar.El napisał:
    Można przy wewnętrznym taktowaniu używać transmisji USART. Ale trzeba generator wewnętrzny skalibrować, używać zawsze w tej samej temperaturze i przy tym samym napięciu.


    No jasne, że można, ale spójrz na poziom 90% pytań na elektrodzie i jak się to ma do "magicznych" rzeczy o których piszesz :) Nawet generatora nie trzeba używać przy tym samym napięciu, czy temperaturze, wystarczy do ramki dodać preambułę, np. 0xAA i nią synchronizować transmisję, ale co z tego? Ile osób to zrobi, bez poprowadzenia za rączkę? Prościej dać kwarc za 30 groszy i po kłopocie.

    0