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

Problem z UART podczas przerwania

webserver 28 Lut 2009 14:42 1077 3
REKLAMA
  • #1 6216785
    webserver
    Poziom 12  
    Witam
    Mam problem programuje w Bascom avr procka atmega8 zrobiłem sobie transmisje RS i mam problem ogólnie wszystko pięknie ładnie działa tylko że w momencie jak wystąpi przerwanie po przez funkcje print zostaje wysłany znak ze zmiennej po czym przechodzi do funkcji waitkey() i oczekuje na odebranie znaku no i właśnie ... oczekuje ale nic nie widzi oczywiście jeżeli nie występuje przerwanie funkcja pięknie ładnie działa. W czym jest problem ?
    p.s.
    Tylko nie piszcie ze problem w Bascomie bo to już dobrze wiem ...
  • REKLAMA
  • Pomocny post
    #2 6216924
    mirekk36
    Poziom 42  
    To nie są problemy Bascoma, w bascomie można wiele rzeczy szybko zrobić, tylko jak ktoś go nie zna to najłatwiej i naszybciej jest na niego psioczyć i wylewać swe żale.

    ale ok, skoro ty (o ile dobrze zrozumiałem) w jakimś tam przerwaniu wysyłasz coś poleceniem PRINT przez łącze RS232 a następnie w tym samym przerwaniu czekasz na odbiór przez RS232 (waitkey) a do tego prawdopodobnie nie odblokowałeś przerwań to nie ma co się dziwić , że nie działa.

    Jeśli źle zrozumiałem to nie ma co się dziwić po tak lakonicznym opisie - gdybyś wstawił/wkleił ten swój problematyczny fragment kodu , to zapewne szybciej udałoby się coś konkretnego podpowiedzieć.

    Generalnie unikaj wykonywania jakichkolwiek czaso-żernych operacji wykonywanych w przerwaniach - stosuj własne flagi dzięki którym to samo później możesz wykonać w normalnej pętli głównej Do Loop
  • REKLAMA
  • #3 6216983
    webserver
    Poziom 12  
    dzięki za podpowiedz już wiem jak to ominąć.
  • #4 6216984
    bolek
    Poziom 35  
    tu raczej w gre wchodzą priorytety. Wchodzi do przerwania, wysyła pierwszy znak i dupa. UART zgłosi przerwanie od wysłanego znaku jedak procek tam nie wskoczy bo siedzi cały czas w przerwaniu od timera (czy co tam masz)

    Jeśli chcesz obstać przy swoim rozwiązaniu to ustaw wyższy priorytet dla UARTa
REKLAMA