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

Pridružen-a: Pet 31 Avg 2012 10:03 Prispevkov: 66 Aktiv.: 0.42 Kraj: Obala
|
Objavljeno: Tor Okt 09, 2012 3:22 pm Naslov sporočila: |
|
|
Branez: kako pošljem text programa tako kot si ga ti dodal gor? Jaz sem namreč nameraval poslati sliko =P
ssdzkrez: Res najlepša hvala! Moj testni program je dolg komaj 20 vrstic in bi res ogromno časa porabil pri pisanju ter iskanju napak. Ob priliki pošljem svoj izdelek! _________________ Vsak začetek najde svojo pot |
|
Nazaj na vrh |
|
 |
MadMax Član


Pridružen-a: Pet 09 Sep 2005 22:16 Prispevkov: 4743 Aktiv.: 19.97
|
Objavljeno: Tor Okt 09, 2012 3:26 pm Naslov sporočila: |
|
|
Uporabi forumsko funkcijo "Code". Na voljo imaš pa seveda tudi "Predogled", da vidiš kaj nameravaš poslati v javnost. |
|
Nazaj na vrh |
|
 |
Minimal Član

Pridružen-a: Pet 31 Avg 2012 10:03 Prispevkov: 66 Aktiv.: 0.42 Kraj: Obala
|
Objavljeno: Tor Okt 09, 2012 5:16 pm Naslov sporočila: |
|
|
Tako, uspelo mi je dokončati osnutek programa po ogledu Vilkovega programa in najti funkcijo na forumu code :D
Če vas bilokaj zanima lahko razlozim kaj zakaj in kako.
Koda: |
$regfile "m8def.dat"
$crystal = 4000000 'v članku svet elektronike sem zaseldil
'da ta senzornajbolje deluje (najlažnje izračunamo razdaljo)
Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.7 , Db7 = Portb.6 , E = Portb.3 , Rs = Portb.2
Config Lcd = 16 * 2
Cursor Off Noblink
Enable Interrupts
Config Portb.3 = Output
Config Portb.4 = Input
Declare Sub 5m+
Dim A As Integer
Cls
Locate 1 , 1 : Lcd "Merjenje" ;
Locate 2 , 1 : Lcd "razdalje." ;
Wait 5
Cls
Do
Pulseout Portb , 3 , 38 'lahko razložim zakaj 38
Disable Interrupts
Pulsein A , Pinb , 4 , 1
Enable Interrupts
If Err = 0 Then
A = A * 10
A = A / 58
Locate 1 , 1 : Lcd "Razdalja:"
Locate 2 , 1 : Lcd A ; "__cm___" ;
Else
Gosub 5m+
End If
Loop
End
Sub 5m+
Cls
Locate 1 , 1 : Lcd "Prevelika"
Locate 2 , 1 : Lcd "razdalja!"
Waitms 500
Locate 1 , 1 : Lcd "_________"
Locate 2 , 1 : Lcd "_________"
Waitms 500
End Sub 5m+ |
_________________ Vsak začetek najde svojo pot |
|
Nazaj na vrh |
|
 |
Minimal Član

Pridružen-a: Pet 31 Avg 2012 10:03 Prispevkov: 66 Aktiv.: 0.42 Kraj: Obala
|
Objavljeno: Čet Okt 11, 2012 11:44 pm Naslov sporočila: Popravek =P |
|
|
Popravek: V podprogramu sem dodal pred prvo vrstico podprograma Disable interrupts, pred koncem pa enable, saj se bo brez tega na vsake 38mikrosekund ponovno err postavil na 1 in znova zagnal podprogram, čeprav se ta še zdaleč nebo končal.
Koda: |
Sub 5m+
Cls
Disable Interrupts
Locate 1 , 1 : Lcd "Prevelika"
Locate 2 , 1 : Lcd "razdalja!"
Waitms 500
Locate 1 , 1 : Lcd "_________"
Locate 2 , 1 : Lcd "_________"
Waitms 400
Enable Interrupts
End Sub 5m+ |
_________________ Vsak začetek najde svojo pot |
|
Nazaj na vrh |
|
 |
rudiP Član

Pridružen-a: Tor 07 Avg 2007 15:30 Prispevkov: 1235 Aktiv.: 5.66 Kraj: KOPER
|
Objavljeno: Pet Okt 12, 2012 7:05 am Naslov sporočila: |
|
|
ZA začetek daj ti vse skupaj v do loop zanko. Tako ti bo merilo vsako sekundo ne pa non stop kot imaš v tvojem primeru. Interval lahko zmanjšaš. V danem primeru ne rabiš Interruptov.
Koda: |
Do
Wait 1
Pulseout Portb , 3 , 38 'lahko razložim zakaj 38
' Disable Interrupts
Pulsein A , Pinb , 4 , 1
' Enable Interrupts
If Err = 0 Then
A = A * 10
A = A / 58
Locate 1 , 1 : Lcd "Razdalja:"
Locate 2 , 1 : Lcd A ; "__cm___" ;
Else
Locate 1 , 1 : Lcd "Prevelika"
Locate 2 , 1 : Lcd "razdalja!"
End If
Loop
|
_________________ Lep pozdrav iz Kopra Rudi |
|
Nazaj na vrh |
|
 |
Minimal Član

Pridružen-a: Pet 31 Avg 2012 10:03 Prispevkov: 66 Aktiv.: 0.42 Kraj: Obala
|
Objavljeno: Pet Okt 12, 2012 10:57 am Naslov sporočila: |
|
|
Rudi: Imaš prav, vendar sem hotel uporabit podprogram, saj je to naloga za maturo in sem jo hotel malo zakomplicirat, da bi dobil več točk =P
Ko sestavim vezje do konca bom program priredil za 2 senzorja in poslal novo verzijo. See you until then! _________________ Vsak začetek najde svojo pot |
|
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: 7 dni
Powered by phpBB © 2001, 2005 phpBB Group
|