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

USART ATMEGA8 problem z buforem

pysiorek1985 11 Sty 2009 17:10 1625 3
REKLAMA
  • #1 5983469
    pysiorek1985
    Poziom 10  
    Witam
    Mam pytanie dotyczące transmisji RS232 w atmedze8 do komputera. Chodzi o wielkość bufora w USART. Realizuje komunikacje z komputerem w sposób: wysyłam w petli znak, mikroprocesor w odpowiedzi wysyła ciag znaków po 10, po odebraniu w komputerze wysyłam nastepny znak i tak 10 razy obecnie. Z moich obserwacji wychodzi na to ze bufor moj musi miec przynajmniej wielkość 100 inaczej transmisja mi sie zawiesza no i program na komputerze. Oto mój program:
    
    $regfile = "m8def.dat"
    $crystal = 8000000
    $baud = 2400
    
    Config Serialin = Buffered , Size = 10
    Config Serialout = Buffered , Size = 124
    
    Dim Hehe As String * 1
    Dim Wy(30) As String * 11
    Dim I As Integer
    Dim K As Byte
    Dim W As Byte
    
    Enable Interrupts
    I = 24
    For W = 1 To 10
       For K = 1 To 10
       I = I + 1
       Mid(wy(w) , K , 1) = Chr(i)
       Next K
    Next W
    W = 1
    Do
    If Ischarwaiting() = 1 Then Gosub Wpis
    Loop
    End
    
    Wpis:
    Hehe = Inkey()
    Print Wy(w)
    W = W + 1
    If W = 11 Then W = 1
    Return
    

    docelowo tych znaków będzie 300 a za bardzo nie chce wykorzystywac 1/3 SRAMU na bufor. Czy znacie może jakieś metody aby nie wykorzystywac az tyle pamieci na bufor?? z gory dziekuje za pomoc.
  • REKLAMA
  • REKLAMA
  • #3 5985728
    marenc
    Poziom 24  
    Kodowanie? DataFlash? External RAM?

    Nie mam pojęcia dlaczego 100 - jeżeli odpowiadasz ciągiem 10B, to bufor musi mieć 10B, a nie 100 ;) Jeżeli jest to możliwe, to nie gromadź wszystkich danych i dopiero rozpoczynaj wysyłanie, tylko wysyłaj "On-The-Go" :P Czyli w trakcie trwania programu ;) Jeżeli musisz zbierać wszystko naraz, to jedna z opcji na początku tego postu. Ciekawy jestem, czy nie chcąc zużywać 1/3 SRAM'u wykorzystasz pozostałe 2/3 SRAM'u na pozostałe dane ;)
  • #4 5995436
    pysiorek1985
    Poziom 10  
    Nie mam pojęcia co było nie tak że taki fakt wystąpił, jednakże teraz wszystko działa jak powinno. Są na świecie rzeczy, które się nawet filozofom nie śniły hehe.
REKLAMA