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

Bascom AVR - Input + konwerter COM-RS485 AVT530, opóźnienie dla echo on

MES Mariusz 24 Paź 2012 10:34 1491 1
REKLAMA
  • #1 11444777
    MES Mariusz
    Poziom 36  
    Witam.

    Chciałbym uzyskać efekt parametru echo on instrukcji input (mikrokontroler otrzymuje znaki po UART, i natychmiast wysyła je spowrotem) dzięki czemu na ekranie monitora portu COM będę miał wyświetlane wpisywane przez siebie znaki.

    Niestety używam konwertera AVT530 a więc działam w trybie half duplex w sieci RS485.

    Bascom AVR - Input + konwerter COM-RS485 AVT530, opóźnienie dla echo on

    Oczywiście w takim przypadku ustawienie parametru echo na on niczego nie zmienia (nie widzę znaków, jakie wpisuję) gdyż konwerter nie zdąża z nadawania przełączyć się na odbiór (tak podejrzewam).

    Czy istnieje możliwość aby zdefiniować opóźnienie dla echo bascomowego polecenia input?

    Jeśli nie, musiałbym zrezygnować z bascomowego Input i w jakiś inny sposób odczytywać znak po znaku z bufora UART, odsyłając znaki spowrotem (z zadanym opóźnieniem od otrzymania znaku) oraz oczekiwać nadchodzącego kodu klawisza enter.

    Coś mi mówi, cze chyba nie pozostaje mi nic innego, jak spróbować ogarnąć to w ten drugi sposób, bo opóźnienia echo dla input pewnie nie przewidziano. A może się mylę?

    --- edit ---

    Chyba znalazłem rozwiązanie z wykorzystaniem przerwań od UARTa:

    Kod: text
    Zaloguj się, aby zobaczyć kod



    Źródło: http://www.megastyl-bis.pl/szkola/pliki_t_elektronik/SP-Kurs_bascom15_1.pdf

    A zamiast waitms-a w przerwaniu pewnie zrobić warunek od jakieś zmiennej inkrementowanej w przerwaniu odliczającym milisekundy.

    Powinno być chyba ok.
  • REKLAMA
  • #2 11791542
    MES Mariusz
    Poziom 36  
    Jakby ktoś szukał gotowego rozwiązania wklejam to bazujące na obsłudze UART w przerwaniu zamiast Input. W pełni działający kdo poniżej:

    Kod: text
    Zaloguj się, aby zobaczyć kod
REKLAMA