 |
Svet elektronike Revija za prave elektronike
|
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
ata Profesionalec
Pridružen/-a: Pon Apr 2004 9:26 Prispevkov: 110
|
Objavljeno: Ned Okt 10, 2021 11:31 am Naslov sporočila: bascom avr program |
|
|
lep pozdrav vsem
problem imam z programom za step motor
program sem dobil na spletu
na koncu programa mi pokaze napaki in kompilacija ne uspe
prosim za pomoč
pri 76 letih nisem več sposoben rešitve
"m16def.dat"
$crystal = 1000000
Config Kbd = Portb
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , Rs = Portc.0 , E = Portc.1
Config Portd = Output
Config Porta = Input
Portc.0 = Portc.1
Dim A As Byte , B As Byte , Key As Byte , C As Byte , D As Byte , E As Byte
Cls
Cursor Off
B = 0
D = 1
Q:
Locate 1 , 1
Lcd "direkt:" "
Locate 2 , 1
Lcd "hitrost:"
Do
A = Getkbd()
If A > 15 Then
Goto Q
Else
Key = Lookup(a , Dta)
If Key <= 9 Then
B = B * 10
B = B + Key
If D = 0 Then Lcd B
Waitms 270
Elseif Key = 10 Then
Locate 1 , 11
Lcd "levo"
C = 1
D = 0
B = 0
Elseif Key = 11 Then
Locate 1 , 11
Lcd "desno"
C = 2
D = 0
B = 0
Elseif Key = 13 Then
Cls
D = 1
B = 0
Portd.0 = 0
Portd.1 = 0
Waitms 50
Goto Q
Elseif Key = 14 Then
If D = 0 Then
Select Case C
Case 1 : Gosub R
Case 2 : Gosub T
End Select
Wait 1
Loop
End
Dta:
Data 7 , 8 , 9 , 10 , 4 , 5 , 6 , 11 , 1 , 2 , 3 , 12 , 13 , 0 , 14 , 15
R:
Do
Portd = &B00000001 : Waitms B
Portd = &B00000011 : Waitms B
Portd = &B00000010 : Waitms B
Portd = &B00000110 : Waitms B
Portd = &B00000100 : Waitms B
Portd = &B00001100 : Waitms B
Portd = &B00001000 : Waitms B
Portd = &B00001001 : Waitms B
If Pina.0 = 1 Then
Locate 2 , 1
Lcd "hitrost:" "
B = 0
Lcd B ; " "
Return
End If
Loop
T:
Do
Portd = &B00001001 : Waitms B
Portd = &B00001000 : Waitms B
Portd = &B00001100 : Waitms B
Portd = &B00000100 : Waitms B
Portd = &B00000110 : Waitms B
Portd = &B00000010 : Waitms B
Portd = &B00000011 : Waitms B
Portd = &B00000001 : Waitms B
If Pina.0 = 1 Then
Locate 2 , 1
Lcd "hitrost:"
B = 0
Lcd B ; " "
Return
End If
Loop
v tem delu mi kaze napaki:if then in end if
If Pina.0 = 1 Then
Locate 2 , 1
Lcd "hitrost:"
B = 0
Lcd B ; " "
Return
End If
Loop |
|
Nazaj na vrh |
|
 |
Jure Urednik
Pridružen/-a: Pon Jan 2004 12:51 Prispevkov: 2127 Kraj: Ljubljana
|
Objavljeno: Sre Okt 13, 2021 11:07 am Naslov sporočila: |
|
|
Ata,
na začetku programa moraš malce drugače definirati procesor:
Koda: | $regfile ="m16def.dat" |
V subrutinah je napačno napisano. Namreč če si v subrutini začel Do zanko, potem jo moraš tudi dokončati z Loop ukazom, pri tebi je pa napisano takole:
Isto velja za If in Endif: če imaš IF v Do-Loop zanki, potem ta IF končaj z ukazom ENDIF znotraj DO-LOOP zanke.
Lp
Jure |
|
Nazaj na vrh |
|
 |
ata Profesionalec
Pridružen/-a: Pon Apr 2004 9:26 Prispevkov: 110
|
Objavljeno: Sre Okt 13, 2021 3:17 pm Naslov sporočila: |
|
|
Jure
hvala za pomoč-program deluje |
|
Nazaj na vrh |
|
 |
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu You cannot attach files in this forum You cannot download files in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|