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

Implementacja Modbus i pytania z tym związane

Krokus22 28 Lis 2011 00:41 1618 0
  • #1 10191514
    Krokus22
    Poziom 19  
    Witam, od wczoraj walczę z moją implementacją protokołu modbus. Procesor to Atmega16, realizacja ASCII i baud 9600. Mój problem dotyczy czasu zwłoki w odpowiedzi. Mam następujący kod:

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


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


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


    Problem dotyczy tego, że posiadam znaczną zwłokę w odpowiedzi od slave'a. Korzystam z Bray terminal który generalnie jest dość szybki. Chodzi mi o moment kiedy wszystko zostanie odebrane i chcę wysłać 'OK' (wiem niezgodność typów itd, ale nawet chcąc wyświetlić informację na LCD że wszystko jest poprawnie trwa to za długo na płynną pracę - ok. 1s.) Czy winę za stan rzeczy ponosi sprawdzanie LRC, czy ta konwersja hex->ASCII i vice versa? Czy to tak drastycznie spowalnia? Przecież to tylko operacje bitowe i sumy na małych tablicach.

    PS. Wywaliłem nawet funkcje LRC, też jest opóźnienie. Urządzenia mają pracować szybko i mieć krótki czas na reakcję, co jest nie tak? Jeśli pozwolę nadawać dalej, dane wychodzą na terminal w zastraszającym tempie :)

    Pozdrawiam, prosząc o pomoc :)
REKLAMA