Aktyw Forum

Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.

Sprawdź punkty Zarejestruj się

wczytanie czasów dla polecenia WAIT z pliku tekstowego

adrach
-
-
Posty:4
Rejestracja:24 sie 2004, o 09:54
wczytanie czasów dla polecenia WAIT z pliku tekstowego

Postautor: adrach » 12 gru 2006, o 21:14

Mam pętlę, w której występuje polecenie WAIT.

Problem w tym, że za każdym kolejnym przebiegiem czas WAIT w pętli ma być inny i zgodny z kolejnymi wartościami zapisanymi wcześniej w pliku tekstowym. Przykładowy plik może wyglądać np. tak:
1
5
11
20
60
gdzie liczby oznaczają czasy wyrażone w sekundach.

Jak pożenić czasy podane w pliku z poleceniem WAIT występującym w pętli?
Pętla ma się kończyć w momencie wykorzystania wszystkich zadeklarowanych w pliku czasów!

awatar100
-
-
Posty:420
Rejestracja:27 cze 2003, o 07:55
Lokalizacja:Gdańsk
Kontaktowanie:

Postautor: awatar100 » 12 gru 2006, o 21:34

Mam pętlę, w której występuje polecenie WAIT.

Problem w tym, że za każdym kolejnym przebiegiem czas WAIT w pętli ma być inny i zgodny z kolejnymi wartościami zapisanymi wcześniej w pliku tekstowym. Przykładowy plik może wyglądać np. tak:
1
5
11
20
60
gdzie liczby oznaczają czasy wyrażone w sekundach.

Jak pożenić czasy podane w pliku z poleceniem WAIT występującym w pętli?
Pętla ma się kończyć w momencie wykorzystania wszystkich zadeklarowanych w pliku czasów!
dim a as byte ' jakas zmienna
a = 1 ' jej jakas wartosc

' odczytujemy sobie to co masz w pliku textowym .. nie wiem w epromie na i2c
do 'petla
cus 'cos robi
wait 1 'czeka
a = a+1 ' zwiekszamy zmienna o 1 ..mozna zapisac to bardziej elegancko
loop until a = b ' tak dlugo "pozeniaj te czasy" az a zwiekszy sie do wczesnej odczytaqnego b z pliku textowego z pamieci eprom czy czego tam..

adrach
-
-
Posty:4
Rejestracja:24 sie 2004, o 09:54

Postautor: adrach » 15 gru 2006, o 22:30

Hmm, bardziej chodziłoby o przesłanie danych po RS-ie i wrzucenie ich w pętlę, gdzie polecenie WAIT dostawałoby kolejno w każdym przebiegu pętli kolejne wartości z przesłanego pliku tekstowego.

Awatar użytkownika
almatea
-
-
Posty:240
Rejestracja:12 gru 2003, o 17:02
Lokalizacja:Brzeszcze
Kontaktowanie:

Postautor: almatea » 17 gru 2006, o 14:48

Chyba prościej się nie da.


$baud=9600 ' Ustaw sobie taki jaki chcesz
Dim Odbierz as String * 4
Dim Czas as Byte



'Pętla główna

Do

Print "Podaj" ' Wysyła do PC prośbę o nową wartość. Oczywiście musi być program, który na to zareaguje.
Input Odbierz
Czas=Val(Odbierz)

Wait Czas


Loop


To jest program liniowy.
Jeśli chcesz w dowolnym momencie poprosić PC o nową zmienną, wykorzystaj polecenie
Ischarwaiting() i zastosuj jakieś flagi po to, aby program za każdym razem nie wysylał zapytania do komputera. W przypadku który podałem program nie przejdzie dalej, dopóki nie otrzyma odpowiedzi z PC. Chyba, że zastosujesz timeout dla RS.

Jeśli chcesz jakiś program na PC z tym współpracujący, to daj znać.
Napiszę Ci go.

Raf

adrach
-
-
Posty:4
Rejestracja:24 sie 2004, o 09:54

Postautor: adrach » 17 gru 2006, o 22:21

-------------------------------------
DZIĘKI Raf za konkret !!!
-------------------------------------
Wykorzystując Twoją propozycję mam obecnie działającą poniższą wersję:

$baud = 2400
Dim Odbierz As String * 5
Dim Czas As Integer

Do
Print : Print "Podaj aktualna wartosc czasu w [ms]:" : Input Odbierz
Czas = Val(odbierz)
Print "Wartosc wprowadzego czasu wynosi: " ; Czas ; " ms."

Cls
Lcd "Biezacy czas to:"
Lowerline
Lcd Czas ; " ms"

Waitms Czas
Sound Portd.5 , 1 , 25000
Loop Until Czas = 0

Cls
Lcd "Koniec czytania!" 'wyświetl na LCD
Print : Print
Print "Koniec czytania!" 'wyświetl w oknie Hyperterminala

End

Jeśli chcesz jakiś program na PC z tym współpracujący, to daj znać.
Na razie wysyłałem znaki z klawiatury PC-ta za pomocą Hyperternimala. Ostatecznie Hyperterminalem chciałbym wysłać cały plik tekstowy, w którym znajdować się będą koleje wartości dla zmiennej Czas. Plik tekstowy miałby np. taką zawartość:
120
320
555
1112
3470
... itd.

(Wszystkich wierszy byłoby powiedzmy 20 a każda liczba w wierszu to Czas w ms).

Czy jest sensowny sposób na przesłanie takiego pliku Hyperterminalem, tak aby następnie liczby z kolejnych wierszy były w kolejnych przebiegach pętli podstawiane ostatecznie do zmiennej Czas? A może Hyperterminal nie jest najszczęśliwszym rozwiązaniem w tym przypadku?

Wróć do „Projektowanie PCB, programy EDA, CAD, narzędziowe”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 2 gości