Witam wszystkich.
Dzisiaj z innym problemem mam rebus.Mianowicie piszę programik ,no próbuję i nie mogę ustawić na lcd tak, aby z lcd znikał napis "temp ok." razem z odczytami temperatur, po przekroczeniu np.60 stopni i pojawiał się napis PIEC w pierwszej linijce.Jak uda mi się zrobić że pojawia się napis piec ,to znowu nie znika mi Temp OK.Najgorsze jest to że jak wzoruję się na innych kodach ,to mój bascom nie rozpoznaje komend, przynajmniej tak mi się wydaje.
Przeanalizuj swój kod.
Najpierw w drugiej linii wyswietlasz ,,temp ok",
a następnie w pierwszej napis,,piec".
W jaki sposób ma niby zniknąć napis ,,temp ok" ?
użyj np:
cls
przed wyswietleniem ,,piec"
Próbowałem z tą komendą.Niestety mam błąd "no more space for bit" "invalid data type".A jeżeli daję samo cls, to wtedy nie mam abo jednego napisu ,ani drugiego.
Nie wychodzi to ze spacją.Jest jakiś sposób na czyszczenie tylko jednego napisu?
Np.: if TE=>25 then
lcd ??.Chodzi mi oto , że gdy temperatura do górnej granicy jest ok. to żeby śwoecił napisem OK.A jeżeli przekroczy to ok ma zniknąć, i wyświetlić się piec.
Nie wychodzi to ze spacją.Jest jakiś sposób na czyszczenie tylko jednego napisu?
Np.: if TE=>25 then
lcd ??.Chodzi mi oto , że gdy temperatura do górnej granicy jest ok. to żeby śwoecił napisem OK.A jeżeli przekroczy to ok ma zniknąć, i wyświetlić się piec.
Możesz wpisac cokowiek zechcesz pod warunkiem że nowa treśc jest wpisywana dokładnie w tym samym miejscu, inaczej coś może pozostac z poprzedniej informacji
np. jeżeli miałeś:
If Temp >= 22 Then
Locate 2 , 1
Lcd "Temp OK."
End If
to nowy wrunkowy wpis może byc:
if TE=>25 then
Locate 2 , 1
Lcd "Temp = " ; temp ' wyświetli aktualną temperature
End If
albo jeżeli chcesz pozbyc się tego wpisu w ogóle i nic tam nie wyświetlic:
if TE=>25 then
Locate 1 , 1
Lcd "PIEC"
Locate 2 , 1
Lcd Spc(8) ' wyczyści poprzedni wpis "Temp OK." -liczba 8 określa ile znaków ma byc nadpisanych przez "space"- inaczej wyczyszczonych.
End If
Napisałem coś takiego , i teraz mam tak jak chciałem.Czyli temp=22 to ok.Jeśli 25 to PIEC!!. I jeśli znowu temp22 ,to piec znika i wpada z powrotem ok.
Kod: text
Zaloguj się, aby zobaczyć kod
Dziękuję bardzo za podpowiedź.Nie znałem tej komendy LCD SPC() .
Dodano po 5 [godziny] 55 [minuty]:
Mam teraz inny problem.
W związku z tym ,że program pracuje w pętli , nie mogę ustawić gaszenia diody w trakcie alarmu.Szukam w sieci ale wszystko mi się miesza.Jaki jest sposób ominięcia
loop? , abym mógł wstawić : if portb.3=0 then portb.0=1.
Napisałem coś takiego , i teraz mam tak jak chciałem.
.............
Mam teraz inny problem.
W związku z tym ,że program pracuje w pętli , nie mogę ustawić gaszenia diody w trakcie alarmu. Szukam w sieci ale wszystko mi się miesza.Jaki jest sposób ominięcia
loop? , abym mógł wstawić : if portb.3=0 then portb.0=1.
Kod: text
Zaloguj się, aby zobaczyć kod
W którymś listingu programu masz na PB.0 speaker, a teraz jest dioda?
Jest co najmniej kilka sposobów manipulowania portami wyjściowymi, gdzie nie musisz pomijac pętli Do...Loop.
Możesz posłużyc się dodatkową zmienna (flagą), gdzie na przykład kombinacja stanu flagi i temperatury załącza twoją diode, alarm, cokolwiek;
Chcąc 'wykasowac' alarm albo zmienic stan diody podczas gdy processor jest zajęty obsługą innej czynności (w tym wypadku obsługą speakera), możesz posłużyc się interruptem i w jego subrutynie zmienic stan flagi na taki aby pierwotny warunek nie był spełniony.
Albo inny sposób: w pętli głównej programu stawiasz odpwiednie flagi a exekucję zadań wykonujesz w subrutynach i ewentualnie po wykonaniu zadania zeruje sie flage.
Tu nie możesz stosowac jakiegoś generalnego szablonu (bo go nie ma)(!); musisz miec własny koncept dopasowany do całości projektu. Nie wiem dlaczego wszyscy pomijają("idą na skróty") zasadniczą częśc procesu projektowania programu, jakim jest "flow chart", tak jakby to był jakiś abstrakcyjny wymysł (!).
Prawdopodobnie również nie możesz wyłączyc alarmu do czasu obniżenia temperatury poniżej progu włączenia alarmu (25 st). Brak również histerezy temperatura/alarm, co może powodowac stany niestabilne.
Odwiedź tą stronę:
http://www.techideas.co.nz/ W lewym górnym rogu znajdziesz link do 'downlolad the textbook' (pdf).
znajdziesz tam bardzo dużo przykładów i pomocnych wyjaśnień nie tylko w zakresie procesu i nawyków w programowaniu w Bascom, ale także troche podstaw elektroniki. Częśc, którą znasz; możesz pominąc.