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

[Atmega32] Jak wysyłać dane z Hyperterminalu do Atmega32 przez RS-232?

bartus 26 Sie 2012 17:03 1740 8
REKLAMA
  • #1 11248105
    bartus
    Poziom 11  
    Poprawiłem tytuł na bardziej oddający problem i zgodny z regulaminem p. 3.1.15.
    LordBlick

    witam
    Korzystam z książki pana Mirosława Kardasia Napisałem prosty programik do UC który ma odbierać dane z PC. Program chodzi na Atmega32 komunikacja avr pc odbywa się bez problemu.

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Niestety jedyne co mi się na razie udaje to zablokować terminal.
    żeby wysłać coś z Hyperterminalu odblokowałem opcję "Lokalne echo wpisywanych znaków" czy żeby wysłać znak przez uart to po wpisaniu znaku muszę jeszcze coś zrobić ??
  • REKLAMA
  • Pomocny post
    #2 11248253
    Krauser
    Poziom 26  
    Masz funkcję USART_Transmit i możesz powyświetlaniu odesłać znak z powrotem. Nie włączaj echa w hyperterminalu.
  • REKLAMA
  • #3 11248292
    bartus
    Poziom 11  
    Ale mi chodziło żeby wysłać jakiś znak z terminalu wpisany prze zemnie :D a nie odebrany znak wysłać z powrotem.
  • Pomocny post
    #4 11248299
    xamrex
    Poziom 28  
    Kod wygląda na poprawny.
    Polecam zrobić tak jak mówił autor i skorzystać z programu Putty :)
  • REKLAMA
  • #5 11248311
    bartus
    Poziom 11  
    Wiem że Putty lepsze ale niestety tam nie umiem nic wysłać :(
  • REKLAMA
  • Pomocny post
    #6 11248333
    Krauser
    Poziom 26  
    Spróbuj Bray Terminal.
  • #7 11248396
    bartus
    Poziom 11  
    Wszystko idealnie działa dziękuje za pomoc :D
    Jeszcze mam tylko jedno pytanko trochę nie związane z tematem mianowicie jak wyśle z terminalu zmienną 2 cyfrową np. 10 i zapisze ją do tablicy to otrzymam 2 zmienne 1 i 0 czy da się je jakoś skleić z powrotem w 1 zmienną ??
  • Pomocny post
    #8 11248484
    xamrex
    Poziom 28  
    Zależy jak ją wyślesz
    Możesz wysłać jako ASCI(czyli 2 bajty) to potem na UC musisz ją wstawić do tablicy np 2 elementowej
    np.
    char tablica[2];
    tablica[0]= uart_getc();
    tablica[1]= uart_getc();

    I potem funkcja ATOI (asci to int)
    int wynik = atoi(tablica);

    Albo po prostu w twoim terminalu wysłać te 10 jako int (1 bajt) i normlanie odebrać
    uint8_t wynik=uart_getc();
  • #9 11248641
    bartus
    Poziom 11  
    Wielkie dzięki za pomoc :D

    Zamykam.
    Dar.El
REKLAMA