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ę

Program w bascomie pomocy

AndrzejD
-
-
Posty:2
Rejestracja:3 mar 2005, o 11:05
Lokalizacja:Hrubieszów
Program w bascomie pomocy

Postautor: AndrzejD » 12 gru 2005, o 22:55

Witam
i proszę o pomoc
chcę zrobić urzadzenie sterowane przez rs, i napisałem program w bascomie 11173, nadmieniam, iż nie jestem dobry z programowania
ma to sterować 4 diodami poprzez rs485 ale na razie próbuję na rs232
po skompilowaniu chodzi na symulatorze bascomowym bez problemu
natomiast nie chce chodzić po zaprogramowaniu procesora

#9zxxxx# to komenda uruchamiająca diody dla danego numeru slave, może to póżniej rozszerzę więc coś dodatkowego, xxxx to 0 lub 1 do sterowania diodami
siedzę nad tym już kilka dni i nic inne programy testujące chodzą na rs po wgraniu do procesora
a jeszcze jedno procesor działa wolniej z portem szeregowym, niż to jest zaznaczone w programie, czytałem o tym na forach, ale nic takiego nie znalazłem, co może być przyczyną sprawdzane na kilku procesorach i comach
$regfile = "m8def.dat"
$crystal = 8000000
$baud = 9600
Config Pind.6 = Output
Config Pinb.0 = Output
Config Pinb.1 = Output
Config Pinb.2 = Output
Config Serialin = Buffered , Size = 15
Dim Zn As Byte
Dim St_led1 As Byte
Dim St_led2 As Byte
Dim St_led3 As Byte
Dim St_led4 As Byte
Led1 Alias Portd.6
Led2 Alias Portb.0
Led3 Alias Portb.1
Led4 Alias Portb.2
Enable Interrupts
Reset Led1
Reset Led2
Reset Led3
Reset Led4
Do
Zn = Inkey()
If Zn = "#" Then
Print Zn
Do
Zn = Inkey()
If Zn = "9" Then
Waitms 200
Print Zn
Do
Zn = Inkey()
If Zn = "z" Then
Print "wybrano zapis"
Do
Zn = Inkey()
If Zn = "0" Or Zn = "1" Then
St_led1 = Zn
Print St_led1
Do
Zn = Inkey()
If Zn = "0" Or Zn = "1" Then
St_led2 = Zn
Print St_led2
Do
Zn = Inkey()
If Zn = "0" Or Zn = "1" Then
St_led3 = Zn
Print St_led3
Do
Zn = Inkey()
If Zn = "0" Or Zn = "1" Then
St_led4 = Zn
Print St_led4
Do
Zn = Inkey()
If Zn = "#" Then
Print "wszystko ok"
Led1 = St_led1.0
Led2 = St_led2.0
Led3 = St_led3.0
Led4 = St_led4.0
Print St_led1.0 ; St_led2.0 ; St_led3.0 ; St_led4.0
Exit Do
Else
If Zn > Chr(0) Then
Exit Do
End If
End If
Loop
Else
If Zn > Chr(0) Then
Exit Do
End If
End If
Loop
Else
If Zn > Chr(0) Then
Exit Do
End If
End If
Loop
Else
If Zn > Chr(0) Then
Exit Do
End If
End If
Loop
Else
If Zn > Chr(0) Then
Exit Do
End If
End If
Loop
Else
If Zn > Chr(0) Then
Exit Do
End If
End If
Loop
Else
If Zn > Chr(0) Then
Print "zle"
Exit Do
End If
End If
Loop
End If
Loop
End

a_antoniak
-
-
Posty:651
Rejestracja:13 sty 2005, o 18:38
Lokalizacja:Krasnystaw
Kontaktowanie:

Postautor: a_antoniak » 12 gru 2005, o 23:14

To jakiś horror - po co tyle zagnieżdżonych Do...Loop. Dla mnie to za trudne ;).

marecki
-
-
Posty:390
Rejestracja:4 sie 2005, o 15:48
Lokalizacja:Sandomierz
Kontaktowanie:

Re: Program w bascomie pomocy

Postautor: marecki » 13 gru 2005, o 09:00


Led1 Alias Portd.6
Led2 Alias Portb.0
Led3 Alias Portb.1


Reset Led1
Reset Led2
Reset Led3
Przy m8535 miałem między innymi problemy z przypisanie zmiennych pod poszczególne porty. Wszystko było ok ale nie chciało wykonać

Reset Led1

dopiero pomógł w programie powrót do

Reset Portd.6

[ Dodano: 13-12-2005, 08:21 ]
...przynajmniej tak zauważyłem...

szymel
-
-
Posty:212
Rejestracja:16 sty 2005, o 16:42
Lokalizacja:Włocławek

Postautor: szymel » 13 gru 2005, o 19:30

To jakiś horror - po co tyle zagnieżdżonych Do...Loop. Dla mnie to za trudne ;).
Faktycznie ;)

AndrzejD :arrow:
Masz 2 wyjścia:
a)Szybko usunąć ten kod z HDD i zapomnieć o nim :D
b)Oprawić w ramkę i zatytułować "Nigdy więcej" :D
Teraz poważnie:

Kod: Zaznacz cały

$regfile = "m8def.dat" $crystal = 8000000 $baud = 9600 Config Pind.6 = Output Config Pinb.0 = Output Config Pinb.1 = Output Config Pinb.2 = Output Config Serialin = Buffered , Size = 15 Dim St_led(7) As Byte Dim Zn As Byte , Chars As Byte Led1 Alias Portd.6 Led2 Alias Portb.0 Led3 Alias Portb.1 Led4 Alias Portb.2 Enable Interrupts Reset Led1 Reset Led2 Reset Led3 Reset Led4 Chars = 1 Do Print "CMD>"; Zn = Waitkey() If Zn = "#" Then While Chars < 8 Zn = Waitkey() If Zn = "#" Then Exit While st_led(chars) = Zn Incr Chars Wend If Chars = 7 And Zn = "#" Then If st_led(1) = "9" Then If st_led(2) = "z" Then Print "zapis "; For Zn = 3 To 6 Print Chr(st_led(zn)); st_led(zn) = st_led(zn) And 1 Next Led1 = st_led(3) Led2 = st_led(4) Led3 = st_led(5) Led4 = st_led(6) Print End If End If End If Chars = 1 Print Loop
Coś na dobry początek ;)

Piotrek

AndrzejD
-
-
Posty:2
Rejestracja:3 mar 2005, o 11:05
Lokalizacja:Hrubieszów

program w bascomie

Postautor: AndrzejD » 15 gru 2005, o 23:47

Bardzo dzięki działa

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 86 gości