 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
jerny Član


Pridružen-a: Čet 17 Apr 2008 11:27 Prispevkov: 414 Aktiv.: 1.98 Kraj: Dravograd
|
Objavljeno: Čet Apr 23, 2009 7:33 pm Naslov sporočila: Program v bascom-u 8051 |
|
|
Dobil sem nalogo da napišem enostaven program, za utripanje led diod na portu P1(0-7), na vezju sta tudi dve tipki. Nalogo sem poizkušal izvesti z stavkom case, ker pa stavka case še enikoli nisem uporbljal me zanima, če ga prav razumem? (Moje mišljenje je, da prvič ko stisnem na tipko se izvede case 1: drugič case 2: in tako naprej? ), Ker pa zadeve doma ne morem stestirati, bi vas prosil za pomoč!
Koda: |
$sim
Dim Stevec As Byte
Dim B1 As Byte
Dim B2 As Byte
If P3.7 = 0 Then
Select Case B2
Case 1:
Do
For Stevec = 1 To 1
Rotate P1 , Right
Loop Until P1.0 = 0
Next
Case 2:
Do
For Stevec = 1 To 2
Rotate P1 , Right
Loop Until P1.0 = 0
Next
Case 3:
Do
For Stevec = 1 To 3
Rotate P1 , Right
Loop Until P1.0 = 0
Next
Case 4:
Do
For Stevec = 1 To 4
Rotate P1 , Right
Loop Until P1.0 = 0
Next
Case 5:
Do
For Stevec = 1 To 5
Rotate P1 , Right
Loop Until P1.0 = 0
Next
Case Else
End Select
End If
If P3.4 = 0 Then
Select Case B1
Case 1:
Do
For Stevec = 1 To 1
Rotate P1 , Left
Loop Until P1.0 = 0
Next
Case 2:
Do
For Stevec = 1 To 2
Rotate P1 , Left
Loop Until P1.0 = 0
Next
Case 3:
Do
For Stevec = 1 To 3
Rotate P1 , Left
Loop Until P1.0 = 0
Next
Case 4:
Do
For Stevec = 1 To 4
Rotate P1 , Left
Loop Until P1.0 = 0
Next
Case 5:
Do
For Stevec = 1 To 5
Rotate P1 , Left
Loop Until P1.0 = 0
Next
Case Else
End Select
End If
End
|
|
|
Nazaj na vrh |
|
 |
drVrh Član



Pridružen-a: Sre 20 Feb 2008 20:17 Prispevkov: 918 Aktiv.: 4.35 Kraj: Slovenija-Koroska-Prevalje-Lese
|
Objavljeno: Čet Apr 23, 2009 8:35 pm Naslov sporočila: |
|
|
kakšna beseda je v Bascomu rezervirana za in,
npr.:
če je to in to potem naredi to
If Stevec < 0 and Stevec2 = 4 then
lala
End if
mi vrže napako ker je and logična negacija _________________ Iz dneva v dan sem se spraševal kaj je to elektrika, vendar nisem našel odgovora ... in še vedno si postavljam to vprašanje
LP
Grega |
|
Nazaj na vrh |
|
 |
drVrh Član



Pridružen-a: Sre 20 Feb 2008 20:17 Prispevkov: 918 Aktiv.: 4.35 Kraj: Slovenija-Koroska-Prevalje-Lese
|
Objavljeno: Čet Apr 23, 2009 8:44 pm Naslov sporočila: |
|
|
Bascom; Zdaj imam pa sledeč problem, tukaj imam napisano proceduro ki mi sešteva oz. mi gre ura čist normalno ko pride Stevec ali Counter do 1499 se mi sekunda prišteje torej mi lavfa kot ura minute prišteva in sekunde sedaj me pa zanima kako bi to naredil za odštevanje ker karkoli sem poskusil, če sem dal tam minus namesto plusa mi ni delovalo prav, kaj delam narobe.
Koda: |
Prikaz:
If Counter > 1499 Then
Seconds = Seconds + 1
If Seconds > 59 Then
Minutes = Minutes + 1
If Minutes > 59 Then
Ure = Ure + 1
If Ure > 23 Then Ure = 0
Minutes = 0
End If
Seconds = 0
End If
Counter = 0
End If |
_________________ Iz dneva v dan sem se spraševal kaj je to elektrika, vendar nisem našel odgovora ... in še vedno si postavljam to vprašanje
LP
Grega |
|
Nazaj na vrh |
|
 |
kose19 Član


Pridružen-a: Sre 02 Mar 2005 19:37 Prispevkov: 1228 Aktiv.: 5.18 Kraj: okolica Kobarida
|
Objavljeno: Čet Apr 23, 2009 8:57 pm Naslov sporočila: |
|
|
Uporabiš dva if stavka.
npr.
If Stevec < 0
If Stevec2 = 4 then
lala111
End If
lala222
End if _________________ - Absens, carens -
- Tisti, ki ga ni, bo prikrajšan - |
|
Nazaj na vrh |
|
 |
jerny Član


Pridružen-a: Čet 17 Apr 2008 11:27 Prispevkov: 414 Aktiv.: 1.98 Kraj: Dravograd
|
Objavljeno: Čet Apr 23, 2009 9:15 pm Naslov sporočila: |
|
|
Kaj pa moj program? Bi mogel delovati? |
|
Nazaj na vrh |
|
 |
klemen88 Član


Pridružen-a: Tor 01 Jan 2008 17:37 Prispevkov: 747 Aktiv.: 3.51 Kraj: Slovenj Gradec
|
Objavljeno: Čet Apr 23, 2009 10:09 pm Naslov sporočila: |
|
|
jerny je napisal/a: |
Kaj pa moj program? Bi mogel delovati? |
Zakaj nebi naredil preprosteje? Da bi ob pritisku na tipko povečal števec in ko bi števec prišlel npr. do 5 bi se resetiral....in potem samo if stavki ;
IF stevec=x then
......
...
end if
Lp |
|
Nazaj na vrh |
|
 |
jerny Član


Pridružen-a: Čet 17 Apr 2008 11:27 Prispevkov: 414 Aktiv.: 1.98 Kraj: Dravograd
|
Objavljeno: Pet Apr 24, 2009 7:41 am Naslov sporočila: |
|
|
Misliš talole:
Koda: |
Dim Stevec As Byte
DIM STEVEC1 AS BYTE
DIM STEVEC2 AS BYTE
If P3.7 = 0 Then
STEVEC1 = STEVEC1 + 1
IF STEVEC1 = 1 THEN
Do
For Stevec = 1 To 1
Rotate P1 , Right
Loop Until P1.0 = 0
Next
END IF
IF STEVEC1 = 2 THEN
Do
For Stevec = 1 To 2
Rotate P1 , Right
Loop Until P1.0 = 0
Next
END IF
IF STEVEC1 = 3 THEN
Do
For Stevec = 1 To 3
Rotate P1 , Right
Loop Until P1.0 = 0
Next
END IF
IF STEVEC1 = 4 THEN
Do
For Stevec = 1 To 4
Rotate P1 , Right
Loop Until P1.0 = 0
Next
END IF
IF STEVEC1 = 5 THEN
Do
For Stevec = 1 To 5
Rotate P1 , Right
Loop Until P1.0 = 0
Next
END IF
End If
If P3.4 = 0 Then
STEVEC2 = STEVEC2 + 1
IF STEVEC2 = 1 THEN
Do
For Stevec = 1 To 1
Rotate P1 , Left
Loop Until P1.7 = 0
Next
END IF
IF STEVEC2 = 2 THEN
Do
For Stevec = 1 To 2
Rotate P1 , Left
Loop Until P1.7 = 0
Next
END IF
IF STEVEC2 = 3 THEN
Do
For Stevec = 1 To 3
Rotate P1 , Left
Loop Until P1.7 = 0
Next
END IF
IF STEVEC2 = 4 THEN
Do
For Stevec = 1 To 4
Rotate P1 , Left
Loop Until P1.7 = 0
Next
END IF
IF STEVEC2 = 5 THEN
Do
For Stevec = 1 To 5
Rotate P1 , Left
Loop Until P1.7 = 0
Next
END IF
END IF
|
|
|
Nazaj na vrh |
|
 |
drVrh Član



Pridružen-a: Sre 20 Feb 2008 20:17 Prispevkov: 918 Aktiv.: 4.35 Kraj: Slovenija-Koroska-Prevalje-Lese
|
Objavljeno: Sre Jun 10, 2009 12:54 pm Naslov sporočila: |
|
|
LP
Zanima me glede spodnjega programa, ob compilanju mi vrže ven:
Error 120: Label not found[.Button2] in file:
Kaj delam narobe;
Koda: |
Declare Sub Button2 , Button3 , Button4 , Button5
Do
P1.2 = 0
P1.5 = 0
If P3.7 = 0 Then
Gosub Button2
End If
If P3.4 = 0 Then
Gosub Button3
End If
If P3.3 = 0 Then
Gosub Button4
End If
If P3.2 = 0 Then
Gosub Button5
End If
Loop
Sub Button2
P1.2 = 1
P1.5 = 1
P1.7 = 0
End Sub
Sub Button3
P1.2 = 1
P1.5 = 1
P1.7 = 0
End Sub
Sub Button4
P1.2 = 1
P1.5 = 1
P1.7 = 0
End Sub
Sub Button5
P1.2 = 1
P1.5 = 1
P1.7 = 0
End Sub
|
_________________ Iz dneva v dan sem se spraševal kaj je to elektrika, vendar nisem našel odgovora ... in še vedno si postavljam to vprašanje
LP
Grega |
|
Nazaj na vrh |
|
 |
robika Član

Pridružen-a: Pon 05 Apr 2004 20:55 Prispevkov: 281 Aktiv.: 1.19 Kraj: ajdovščina
|
Objavljeno: Sre Jun 10, 2009 4:15 pm Naslov sporočila: |
|
|
Podprograme moraš deklarirat vsakega v svoji vrstici. Podprograme kličeš potem kar po imenu brez Gosub. |
|
Nazaj na vrh |
|
 |
galex4 Član

Pridružen-a: Tor 01 Apr 2008 18:27 Prispevkov: 459 Aktiv.: 2.19
|
Objavljeno: Pon Avg 31, 2009 3:34 pm Naslov sporočila: |
|
|
za vse, ki programirate v Bascom-u čipe 2051. Kako narediti A/D pretvorbo? Katere ukaze uporabljate? V helpu nisem našel. |
|
Nazaj na vrh |
|
 |
BojanR Član

Pridružen-a: Tor 08 Apr 2008 9:52 Prispevkov: 693 Aktiv.: 3.31 Kraj: Vnanje Gorice
|
Objavljeno: Pon Avg 31, 2009 4:18 pm Naslov sporočila: |
|
|
2051 nima AD pretvornika, ampak komparator, ki se odraža na P3.6 (samo interni port). Preberi datasheet!
Če hočeš izmeriti neko analogno vrednost, se moraš pozabavati s timerjem. |
|
Nazaj na vrh |
|
 |
galex4 Član

Pridružen-a: Tor 01 Apr 2008 18:27 Prispevkov: 459 Aktiv.: 2.19
|
Objavljeno: Pon Avg 31, 2009 4:35 pm Naslov sporočila: |
|
|
hočem narediti enostaven termometer brez kakšnega ds- elementa. Za zaznavanje bi uporabil samo ntk upor. Samo za začetek. |
|
Nazaj na vrh |
|
 |
milan62 Član

Pridružen-a: Ned 04 Jan 2004 23:19 Prispevkov: 2391 Aktiv.: 10.09 Kraj: Kranj
|
Objavljeno: Pon Avg 31, 2009 4:51 pm Naslov sporočila: |
|
|
galex,
ena možnost je, da narediš multivibrator s čipom 555. Sestavni del vezja naj bo ntk upor. S procesorjem nato meriš frekvenco multivibratorja in to preračunaš v temperaturo.
LP _________________ Wasting time online since 1999 |
|
Nazaj na vrh |
|
 |
galex4 Član

Pridružen-a: Tor 01 Apr 2008 18:27 Prispevkov: 459 Aktiv.: 2.19
|
Objavljeno: Pon Avg 31, 2009 4:56 pm Naslov sporočila: |
|
|
za začetnika ni to malo pretežko? merjenje frekvence s procesorjem? |
|
Nazaj na vrh |
|
 |
vilko Član



Pridružen-a: Pet 13 Feb 2004 10:26 Prispevkov: 3360 Aktiv.: 14.18 Kraj: Dragomer
|
Objavljeno: Pon Avg 31, 2009 6:46 pm Naslov sporočila: Če |
|
|
Če želiš meriti temperaturo, toplo priporočam termometre DS1820, ki jih vežeš na Atmela. Zakaj bi se trudil, če lahko greš po lažji poti.
Mislim, da je nekaj primerov v mapi Samples, če pa ne, je bilo to razloženo na seminarju, za katerega je bilo napisano pisno delovno gradivo, ki ga lahko dobiš od katerega koli udeleženca ali predavatelja seminarja, mislim, da jih je na forumu nekaj, ki ti bodo dali napotke v tej smeri.
Če ne, ti poščljem materijale po elektronski pošti, pošlji mi naslov pod zasebno. _________________ Nihče ni za vojno in vsi so za mir,
vsi so za bratstvo, nihče za prepir.
Od same ljubezni vsak čas na granatah
bo vtisnjeno geslo: "Darilo za brata"
Janez Menart |
|
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 Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 494 dni
Powered by phpBB © 2001, 2005 phpBB Group
|