اطلاعیه

Collapse
No announcement yet.

دریافت داره از پورت سریال نرم افزاری در Avr نحوه مدیریت اطلاعات پشت سرهم

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    دریافت داره از پورت سریال نرم افزاری در Avr نحوه مدیریت اطلاعات پشت سرهم

    با سلام خدمت دوستان

    من پورت سریال نرم افزاری رو از طریق دستورات زیر در میکرو پیاده سازی کردم و تونستم به خوبی داده ها را از میکرو ارسال مکنم و بر روی ترمینال دریالفت کنم . اما متاسفانه وقتی داده رو می خواهیم از ترمینال به میکرو بفرستم و برای من همان بر گرداند این امکان پذیر نمی باشد و خالی بر می گرداند . من متن را به صورت عادی وارد ترمینال می کنم و کلید اینتر را میزنم و بدون اینتر هم تست کردم نمی دونم مشکل از نوع وارد کردن در ترمیناله و یا مشکل از کدها هست .


    یک سوال دیگهخ هم همینجا بپرسم چجوری میشه اطلاعات ورودی رو ذخیره کرد تا هنگام رسیدن میکرو به همون خط خواندن از سریال اطلاعات رو بگیره !! آیا اطلاعات تا زمان خوانه شدن بر روی میکرو می ماند و یا اینکه می پره !! اگر چند تا هم زمان موج rf دریافت کنم اطلاعات پشت سر هم چه اتفاقی برایش می افتد ؟؟



    کد:
    $regfile = "m16def.dat"
    $crystal = 8000000
    $baud = 19200
    
    Config Portb = Output
    Config Portd = Output
    
    Set Portd.0
    Set Portd.1
    Set Portd.2
    Set Portd.3
    Set Portd.4
    Set Portd.5
    Set Portd.6
    Set Portd.7
    
    
    Set Portb.1
    
    
    
    Dim B As Byte
    Waitms 100
    
    'Open a TRANSMIT channel for output
    Open "comc.1:19200,8,n,1" For Output As #1
    Print #1 , "serial output"
    
    'Now open a RECEIVE channel for input
    Open "comc.2:19200,8,n,1" For Input As #2
    'Since there is no relation between the input and output pin
    'there is NO ECHO while keys are typed
    
    Print #1 , "Press any alpha numerical key"
    
    Reset Portb.1
    Wait 5
    
    'With INKEY() we can check if there is data available
    'To use it with the software UART you must provide the channel
    Do
    
    
    Print #1 , "Light is on"
    
    Set Portb.1
    Wait 1
    Reset Portb.1
    Print #1 , "Please enter character for 2"
    Wait 5
    Set Portb.1
      'Store in byte
      B = Inkey(#2)
      'When the value > 0 we got something
      Print #1 , Chr(b)
      Print #1 , "Send prot b"
      Wait 2
      If B > 0 Then
       Print #1 , Chr(b)                   'Print the character
      End If
    
      Reset Portb.1
      Wait 5
    Loop
    Close #2                          'Close the channels
    Close #1
    
    End

    #2
    پاسخ : دریافت داره از پورت سریال نرم افزاری در Avr نحوه مدیریت اطلاعات پشت سرهم

    برای اینکه داده پورت (سخت افزاری یا نرم افزاری) از دست نره بایستی با پیاده سازی روال وقفه برای اون؛ داد ه ها رو در یک بافر ذخیره کنید

    دیدگاه


      #3
      پاسخ : دریافت داره از پورت سریال نرم افزاری در Avr نحوه مدیریت اطلاعات پشت سرهم

      معمولا همیشه از تکنیک بافر حلقوی استفاده میکنند....تو اینترنت سرچ کنید مطلب زیاد داره...
      تولید کننده تجهیزات برنامه پذیر اتوماسیون صنعتی

      www.intelart.ir


      ساخت کنترلر دما PID فازي با AVR [آموزشی]

      دیدگاه

      لطفا صبر کنید...
      X