Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

ATMEGA32 i DELPHI7 - Pomiar temperatury w DELPHI - 2 czujniki DS18B20.

kamilpazdan 21 Sty 2015 18:17 696 10
  • #1 21 Sty 2015 18:17
    kamilpazdan
    Poziom 12  

    Witam,

    Piszę program w DELPHI obsługujący pomiar dwóch czujników DS18B20.

    Mikro kontroler to ATMEGA32, program w BASCOM.

    Wszystko ogólnie już działa: wysyłam po UART ciąg znaków jako string i odbieram wybrane przeze mnie znaki o danej ilości funkcją Copy w DELPHI. Korzystam z biblioteki TComPort.

    Jedyny problem to z Label'i zrobił mi się generator: temperatury, które są wyświetlane w DELPHI po prostu "migają" z częstotliwością jednej sekundy.

    W przypadku gdy wysyłam tylko jedną temperaturę funkcja Print z BASCOM wszystko gra. Ale już w przypadku dwóch jest problem.

    Jestem początkujący w tych kwestiach. Liczę na pomoc bardziej doświadczonych kolegów.

    Programy na pewno działają ok. Mam wyrzucone Memo w Delphi i BASCOM poprawnie przesyła dane.

    ATMEGA32 i DELPHI7 - Pomiar temperatury w DELPHI - 2 czujniki DS18B20.

    0 10
  • #2 21 Sty 2015 19:07
    -psiak-
    Poziom 32  

    Szklana kula mówi że błąd jest w wierszu numer ... niestety kiepsko widać.
    Pokaż kod.

    0
  • #3 21 Sty 2015 19:14
    kamilpazdan
    Poziom 12  

    Kod: delphi
    Zaloguj się, aby zobaczyć kod


    Dodano po 1 [minuty]:

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod

    0
  • Pomocny post
    #4 21 Sty 2015 19:57
    -psiak-
    Poziom 32  

    Chodzi o to że czasami odczytujesz nie cały wiersz lecz jego fragment.

    Kod: delphi
    Zaloguj się, aby zobaczyć kod

    0
  • #5 21 Sty 2015 20:25
    kamilpazdan
    Poziom 12  

    Kolego bardzo, bardzo wielkie dzięki !

    Pacjent żyje! ;)

    Tylko jakbyś mógł mi wytłumaczyć poszczególne wiersze to by mi się bardziej rozjaśniło... Nie do końca łapie ten temat ;/

    0
  • #6 21 Sty 2015 20:28
    -psiak-
    Poziom 32  

    Zmień jeden wiersz:

    Kod: delphi
    Zaloguj się, aby zobaczyć kod

    Owszem przestanie działać, ale zrozumiesz czemu twój nie działał zaś mój działa.

    0
  • #7 21 Sty 2015 20:32
    kamilpazdan
    Poziom 12  

    uC wysyła pomiędzy linią 13 spacji ?

    0
  • #8 21 Sty 2015 20:34
    -psiak-
    Poziom 32  

    Nie zgaduj tylko poobserwuj co masz w memo.

    0
  • #9 21 Sty 2015 20:43
    kamilpazdan
    Poziom 12  

    "miganie", które się pojawiało to właśnie ten pusty wiersz.
    Po prostu mój pomiar wyświetlał się raz prawidłowo a raz czytał pusty wiersz, który jest w stringu.

    P:=Pos(#13,Str);
    if P>0 then ---> sprawdza czy wiersz jest większy od zera, czyli czy linijka zawiera dane

    0
  • #11 21 Sty 2015 20:50
    kamilpazdan
    Poziom 12  

    W sumie racja...

    Muszę się ukarać...

    Dziękuje za pomoc.

    Temat zamykam i pozdrawiam.

    0