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

AVR ATmega16 - Jak używać printf, getc, gets z UART?

ciko 07 Lis 2013 15:45 1485 3
REKLAMA
  • #1 12925564
    ciko
    Poziom 12  
    Witam.
    Chciałbym uruchomić UART w ATmega16.
    Wiem że można szybko napisać podstawowe funkcję wysyłania i odbierania danych.
    Chciałbym jednak wykorzystać takie funkcje jak printf, getc, gets.
    Czy może mi ktoś wyjaśnić jak dokonać czegoś takiego?

    Z góry dziękuję za pomoc.
    Pozdrawiam, CIKO
  • REKLAMA
  • #2 12925678
    mickpr
    Poziom 39  
    ciko napisał:
    Wiem że można szybko napisać podstawowe funkcję wysyłania i odbierania danych.
    Chciałbym jednak wykorzystać takie funkcje jak printf, getc, gets.
    Taka operacja nazywa się 'retargeting'.

    http://efundies.com/avr/avr_printf.htm

    Wiesz, że takie podejście jest wielce nieoptymalne (pamięciożerne)?
  • REKLAMA
  • #3 12951041
    ciko
    Poziom 12  
    Witam ponownie.
    To co ostatnio podesłałeś to jest opis jak uruchomić printf na UARTcie.
    A co z getc czy gets?
    Możesz podpowiedzieć jak uruchomić te funkcje?

    Pozdrawiam, CIKO
  • #4 12951078
    mickpr
    Poziom 39  
    Poczytaj o FDEV_SETUP_STREAM np. (jeszcze) tutaj: http://www.appelsiini.net/2011/simple-usart-with-avr-libc

    W definicji twojego strumienia (w przykładzie - który ci podałem) brak jest funkcji pobierającej znak ze strumienia.
    Funkcję zdeklaruj wg podanych przykładów i przypisz jako drugi parametr tego makra (obecnie NULL).
    Natomiast trzeci parametr przestaw z WR na RD/WR.
REKLAMA