|
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
rudiP Član
Pridružen-a: Tor 07 Avg 2007 15:30 Prispevkov: 1234 Aktiv.: 6.09 Kraj: KOPER
|
Objavljeno: Čet Jun 14, 2012 7:05 am Naslov sporočila: Re: odgovor |
|
|
xzibitx je napisal/a: |
Da ne podpirate lenobe je čis prov sam res nimam pojma kako bi lahko to naredu. To z OR nism prepričan če je prov ker mi je ob zamenjavi AND funkcije z funkcijo OR led dioda skos gorela. Pravilnostne tabele sem pogledal in vem kaj morem naredit nimam pa pojma kako bi to naredil. Ko sem zamenjal funkcijo OR in vstavil XOR mi pa niti ledica ni več gorela ampak sem dobil ogromno napak napak [slovenščina je zame švedska vas] da res nimam pojma kako bi se to nardil. |
Nimaš pravilnih deklaracij in še kaj bi se našlo !
Koda: |
$regfile = "m32def.dat"
$crystal = 4000000
'poišči primer za ta m32 in tu dodaj še steke
'Predvidevam, da imaš na PORTD tipke na PORTA pa ledice
Config Porta = Output
Led_0 Alias Porta.0
Led_1 Alias Porta.1
'itd
Config Portd = Input
Tipka_0 Alias Pind.0
Tipka_1 Alias Pind.1
'itd
Porta = 255 '
'Config Debounce = 80 ' sedaj še ne rabiš te vrstice
'Dim Led As Byte '// LED JE POSAMIČNA ENORA
'Dim Tipka As Byte '// TIPKA JE POSAMIČNA
Do
If Pind.0 = 0 Then
Porta = &B00000000
Wait 2
Porta = &B11111111
Wait 2
Porta = &B00000000
Wait 2
Porta = &B11111111
Wait 2
Porta = &B00000000
Wait 2
Porta = &B11111111
Wait 2
If Tipka_0 = 0 Then Set Led_0 Else Reset Led_0
'If Pind.0 = 0 Then
' Porta = Led
' Led = Not Led
' NISI ZAKLJUČIL IF STAVKA
' Else 'OZIROMA TA ELSE TU NE PAŠE
' End If
End If
Loop
End |
_________________ Lep pozdrav iz Kopra Rudi |
|
Nazaj na vrh |
|
|
xzibitx Neznanec
Pridružen-a: Sre 13 Jun 2012 16:02 Prispevkov: 6 Aktiv.: 0.04 Kraj: slovenija
|
Objavljeno: Čet Jun 14, 2012 10:10 pm Naslov sporočila: XOR |
|
|
No evo malo sem programiral in nekaj ustvaril vendar nevem če bo prav ker nemorem probat. tukaj je program :
$regfile = "m32def.dat" "
$crystal = 4000000
Config Porta = Output
Config Portb = Input
Main:
Debounce Pinb.7 , 0 , Program , Sub Xor
Debounce Portb.6 , 0 , Program1 , Sub
Program:
Porta = &B01111111
Return
Program1:
Porta = &B01111111
Return
_________________ u can only die once. Make sure it is worth it |
|
Nazaj na vrh |
|
|
mucek Član
Pridružen-a: Tor 01 Avg 2006 10:47 Prispevkov: 5327 Aktiv.: 24.78 Kraj: Domzale
|
Objavljeno: Čet Jun 14, 2012 11:09 pm Naslov sporočila: |
|
|
Main moraš delati v Do-Loop zanki. Tako, kot sedaj, se ti bo program samo enkrat "zapeljal" čez in to bo to.
Pa tisti sub xor mi tudi ni ravno jasen ... Mislim, da tudi compilerju ne bo
Pa če bereš vhod, moraš brati kot PINx.y, ne PORT (to je mene večkrat hecalo ). Torej debounce PINx.y.
Pa zdaj v obeh podprogramih iste ledice prižgeš ... Zamenjaj no v enem &B01111111 s čim drugim ... Če hočeš negacijo bo to &B10000000.
Pa lahko noč
LP, g
_________________ ...lahko pa se tudi motim ... |
|
Nazaj na vrh |
|
|
xzibitx Neznanec
Pridružen-a: Sre 13 Jun 2012 16:02 Prispevkov: 6 Aktiv.: 0.04 Kraj: slovenija
|
Objavljeno: Pet Jun 15, 2012 3:25 pm Naslov sporočila: odgovor |
|
|
No hvala za odgovor probal sem program v bascomu in mi ni našel napak je pa res da sam program nemorem preizkusit ker nimam ploščice s čipom tako da nimam pojma kako bi se program v praksi obnašal:(. Zato sem tudi prosil koga ki ima ploščico da mi naredi program saj sam nevem kako deluje. Hvala LP
_________________ u can only die once. Make sure it is worth it |
|
Nazaj na vrh |
|
|
Vlado Član
Pridružen-a: Sre 03 Mar 2004 21:35 Prispevkov: 561 Aktiv.: 2.53 Kraj: Ljubljana
|
Objavljeno: Pet Jun 15, 2012 5:18 pm Naslov sporočila: |
|
|
Citiram: |
Debounce Pinb.7 , 0 , Program , Sub Xor |
Tole sigurno ne bo prav, sprememba pina B.7 bo izzvala skok v podprogram z imenom PROGRAM. Kaj ti pomeni tisti XOR na koncu?
XOR je rezervirana beseda in je razen za ta namen ne moreš uporabiati.
Tudi če nimaš tiskanine, tvoj program lahko preveriš v simulatorju ki je vgrajen v Bascom.
Poglej v Help-u kaj pomeni $Sim!
Če pa si ga probal v simulatorju, ni razloga da nebi delal na plošči.
Drugič raje prilepi kodo, ne pa jo prepisovat ker lahko pride do napak pri prepisovanju.
Ko si postavil Portd kot vhode, če nimaš zunanjih pull up upororov vklopi notranje:
Portb=255
LP
|
|
Nazaj na vrh |
|
|
xzibitx Neznanec
Pridružen-a: Sre 13 Jun 2012 16:02 Prispevkov: 6 Aktiv.: 0.04 Kraj: slovenija
|
Objavljeno: Sob Jun 16, 2012 9:38 am Naslov sporočila: odgovor |
|
|
Da vem da lahko probaš v simulatorju sam a ni tako da programov s tipko v simulatorju nemoreš preizkusit ker simulator nima tipk? vsaj tako nam je profesor reku
_________________ u can only die once. Make sure it is worth it |
|
Nazaj na vrh |
|
|
protoncek Član
Pridružen-a: Sre 31 Jan 2007 9:41 Prispevkov: 9573 Aktiv.: 45.83 Kraj: Mengeš
|
Objavljeno: Sob Jun 16, 2012 10:00 am Naslov sporočila: |
|
|
Nima tipk, lahko pa stanja portov spreminjaš s klikom na ustrezno ledico v simulatorju.
|
|
Nazaj na vrh |
|
|
RGorazd Član
Pridružen-a: Čet 20 Maj 2004 15:57 Prispevkov: 1712 Aktiv.: 7.71 Kraj: Ig
|
Objavljeno: Sob Jun 16, 2012 10:16 am Naslov sporočila: |
|
|
Tako kot je rekel protoncek. Na desni imaš set zelenih ledic. Te so vhodi, na levi imaš pa set rdečih ledic (govorim za simulator), te so izhodi. Zelene ledice lahko klikaš in se obnašajo tako kot tipke. Če zelena ledica v simulatorju sveti, pomeni da jo interni pull up vleče navzgor. Ko boš kliknil nanjo, bo potemnela, kar velja enako, kot če bi stisnil tipko, ki je v dejanskem hardveru vezana na maso. Program bo zaznal prehod iz logične "1" v logično "0". Ukaz Debounce Tipka,0,Naredinekaj,sub se bo izvedel.
LP G
_________________ .
._. _ _ ._. _.__. _|
[ (_](_)[ (_] /_(_]
._| |
|
Nazaj na vrh |
|
|
xzibitx Neznanec
Pridružen-a: Sre 13 Jun 2012 16:02 Prispevkov: 6 Aktiv.: 0.04 Kraj: slovenija
|
Objavljeno: Sob Jun 16, 2012 6:25 pm Naslov sporočila: odgovor |
|
|
Sme preizkusil in stvar res deluje najlepša vam hvala. Še vedno pa nisem povsem ugotovil oz mi še ni uspelo napisati program pravilno. Ledice se ko pritisnem na tipko vžgejo vendar se ko tipko spustim ne ugasnejo Program pa je tak :
$regfile = "m32def.dat" "
$crystal = 4000000
Config Porta = Output
Config Portb = Input
Main:
Debounce Pinb.7 , 0 , Program , Sub Xor
Debounce Portb.6 , 0 , Program1 , Sub
Program:
Porta = &B10000000
Return
Program1:
Porta = &B00000000
Return
_________________ u can only die once. Make sure it is worth it |
|
Nazaj na vrh |
|
|
rudiP Član
Pridružen-a: Tor 07 Avg 2007 15:30 Prispevkov: 1234 Aktiv.: 6.09 Kraj: KOPER
|
Objavljeno: Sob Jun 16, 2012 6:47 pm Naslov sporočila: |
|
|
Namesto main napiši DO, nato LOOP.
pa še tisti XOR zbriši.
lp
_________________ Lep pozdrav iz Kopra Rudi |
|
Nazaj na vrh |
|
|
RGorazd Član
Pridružen-a: Čet 20 Maj 2004 15:57 Prispevkov: 1712 Aktiv.: 7.71 Kraj: Ig
|
Objavljeno: Sob Jun 16, 2012 8:26 pm Naslov sporočila: |
|
|
Koda: |
$regfile = "m32def.dat" "
$crystal = 4000000
Config Porta = Output
Config Portb = Input
Main:
do
Debounce Pinb.7 , 0 , Program , Sub ' tale Xor nima kaj tle iskati
Debounce PINB.6 , 0 , Program1 , Sub 'če imaš posamezen pin definiran kot vhod, potem daj pinb.x
loop
Program:
Porta = &B10000000
Return
Program1:
Porta = &B00000000
Return |
_________________ .
._. _ _ ._. _.__. _|
[ (_](_)[ (_] /_(_]
._|
Nazadnje urejal/a RGorazd Sob Jun 16, 2012 10:01 pm; skupaj popravljeno 1 krat |
|
Nazaj na vrh |
|
|
gumby Član
Pridružen-a: Sob 28 Apr 2007 12:32 Prispevkov: 4066 Aktiv.: 19.74
|
|
Nazaj na vrh |
|
|
dkone Član
Pridružen-a: Sre 07 Mar 2007 18:53 Prispevkov: 2104 Aktiv.: 10.13 Kraj: Krško
|
Objavljeno: Ned Avg 12, 2012 9:58 pm Naslov sporočila: |
|
|
Imam 16bitno spremenljivko Var3, katero bi rad razbil na dva bayta Var1 in Var2. Kako to narediti?
Koda: |
Dim Var3 As Word , Var2 As Byte , Var1 As Byte
Var3 = 12345
Print Bin(var3)
Shift Var3 , Right , 4
Var1 = Var3
Print Bin(var1)
Shift Var3 , Left , 4 ' alternativa :var2= var3<<4 ?
Var2 = Var3
Print Bin(var2)
Var3 = Makeint(var2 , Var1)
Print Var3 ' preverim če je pravilni rezultat
|
_________________ Denis
Nazadnje urejal/a dkone Ned Avg 12, 2012 10:15 pm; skupaj popravljeno 1 krat |
|
Nazaj na vrh |
|
|
dkone Član
Pridružen-a: Sre 07 Mar 2007 18:53 Prispevkov: 2104 Aktiv.: 10.13 Kraj: Krško
|
Objavljeno: Ned Avg 12, 2012 10:15 pm Naslov sporočila: |
|
|
Na vprašanje si bom sam odgovoril, še dobro da obstaja simulator v bascomu. Bascom vzame prvo LSB byte in prepiše v novo spremenljivko, potem treba začetno spremenljivko zašiftat za 8 mest v desno, da se 1byte pomakne na mesto 2ga byta in to je to.
Še koda, za pomoč drugim.
Koda: |
Dim Var3 As Word , Var2 As Byte , Var1 As Byte
Var3 = 12345
Print Bin(var3)
Var2 = Var3
Print Bin(var2)
Shift Var3 , Right , 8
Print Bin(var3)
Var1 = Var3
Print Bin(var1)
Var3 = Makeint(var2 , Var1)
Print Var3 |
In še krajša:
Koda: |
Dim Var3 As Word , Var2 As Byte , Var1 As Byte
Var3 = 12345 : Var2 = Var3
Shift Var3 , Right , 8 : Var1 = Var3
Var3 = Makeint(var2 , Var1)
Print Var3
|
_________________ Denis |
|
Nazaj na vrh |
|
|
vilko Član
Pridružen-a: Pet 13 Feb 2004 10:26 Prispevkov: 3351 Aktiv.: 15.09 Kraj: Dragomer
|
Objavljeno: Pon Avg 13, 2012 3:27 pm Naslov sporočila: |
|
|
Bascom je zakon!
_________________ Prepričan sem, da je inteligentnih bitij v vesolju veliko. A ker so inteligenta, se nam nočejo prikazati. |
|
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: 48 dni
Powered by phpBB © 2001, 2005 phpBB Group
|