|
Svet elektronike Revija za prave elektronike
|
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
vilko Profesionalec
Pridružen/-a: Pon Jan 2004 11:54 Prispevkov: 807 Kraj: Ljubljana
|
Objavljeno: Ned Feb 03, 2013 12:35 pm Naslov sporočila: |
|
|
Pri zadnji subrutini utripanje manjka na koncu return |
|
Nazaj na vrh |
|
|
RudiP Profesionalec
Pridružen/-a: Sre Jul 2008 8:39 Prispevkov: 128 Kraj: KOPER
|
Objavljeno: Ned Feb 03, 2013 8:32 pm Naslov sporočila: |
|
|
Pišeš nepregledno. V kolikor sprejmeš moj predlog, lahko nadaljuješ tu naprej. Kot osnova bo to zadostovalo
Koda: |
$regfile = "m32def.dat"
'
'
Dim Prestava As Byte 'Integer
Dim Ii As Byte 'Integer
Config Porta = Input
Config Portb = Output
Config Portb.0 = Output
Seg_a Alias Portb.0
Config Portb.1 = Output
Seg_b Alias Portb.1
Config Portb.2 = Output
Seg_c Alias Portb.2
Config Portb.3 = Output
Seg_d Alias Portb.3
Config Portb.4 = Output
Seg_e Alias Portb.4
Config Portb.5 = Output
Seg_f Alias Portb.5
Config Portb.6 = Output
Seg_g Alias Portb.6
Config Portb.7 = Output
Pisk Alias Portb.7
Vzvratna Alias Pina.0
Prosto Alias Pina.1
Prva Alias Pina.2
Druga Alias Pina.3
Tretja Alias Pina.4
Cetrta Alias Pina.5
Peta Alias Pina.6
'-------------------------------------------------------------------------------
Do
Debounce Vzvratna , 0 , Vzvratnasr , Sub
Debounce Prosto , 0 , Prostosr , Sub
Debounce Prva , 0 , Prvasr , Sub
Debounce Druga , 0 , Drugasr , Sub
Debounce Tretja , 0 , Tretjasr , Sub
Debounce Cetrta , 0 , Cetrtasr , Sub
Debounce Peta , 0 , Petasr , Sub
Loop
'-------------------------------------------------------------------------------
End
'-------------------------------------------------------------------------------
Vzvratnasr:
' ii = -1
' tako bi prižigal segmente 7 segmentnega led displeja (en digit)
Portb = &B01110111
Gosub Utripanje_r
Return
'-------------------------------------------------------------------------------
Prostosr:
' ii = 0
Portb = &B00000000
gosub utripanje
Return
'-------------------------------------------------------------------------------
Prvasr:
' Ii = 1
Portb = &B00000110
Gosub Utripanje
Return
'-------------------------------------------------------------------------------
Drugasr:
' Ii = 2
Portb = &B01111011
Gosub Utripanje
Return
'-------------------------------------------------------------------------------
Tretjasr:
' Ii = 3
Gosub Utripanje
Return
'-------------------------------------------------------------------------------
Cetrtasr:
' Ii = 4
Gosub Utripanje
Return
'-------------------------------------------------------------------------------
Petasr:
' Ii = 5
Gosub Utripanje
Return
'-------------------------------------------------------------------------------
Utripanje:
' utripni rdeča
Reset Pisk ' = 0
waitms 500
Set Pisk ' = 1
waitms 500
Return
'-------------------------------------------------------------------------------
|
_________________ Lep pozdrav ! |
|
Nazaj na vrh |
|
|
marc Profesionalec
Pridružen/-a: Ned Maj 2009 10:08 Prispevkov: 243 Kraj: Polzela
|
Objavljeno: Pon Feb 04, 2013 9:32 pm Naslov sporočila: |
|
|
stursc je napisal/a: | jurcman90 je napisal/a: | Prosil bi če se lahko vrnemo na začetek teme, ker mi se vedno ne uspe sprogramerat stikal da delujejo neodvisno ena od druge povrsi ja drugace pa ne. |
imaš na tipkah PullUp upore.
LP, stursc |
Lahko tudi tipke vežeš direkt na maso in v programu napišeš Porta = 255.
Stem aktiviraš notranji pullUp.
Ali imam prav?
LP |
|
Nazaj na vrh |
|
|
vilko Profesionalec
Pridružen/-a: Pon Jan 2004 11:54 Prispevkov: 807 Kraj: Ljubljana
|
Objavljeno: Tor Feb 05, 2013 7:28 am Naslov sporočila: |
|
|
Ja, s tem si vklopil interne pullup upore. |
|
Nazaj na vrh |
|
|
jurcman90 Mojster
Pridružen/-a: Pet Dec 2012 16:34 Prispevkov: 27 Kraj: Stahovica
|
Objavljeno: Čet Feb 07, 2013 1:20 pm Naslov sporočila: |
|
|
Pozdravljeni,
Prosil bi vas če mi lahko poveste kako naj v spodnjem programu napišem
da bo v zgornji vrstici skos ura zvezat sm si hotel v avto sm pa ugotovu da potem nimam ure v avtu ker je lcd na mestu od ure.
V avtu ura skos deluje brez osvetlitve samo ko pa prižgem avto se samo osvetlitev ure prižge.
Tako nekako bi rad imel tudi sam narejeno na lcdju naj bi ura vedno kazala ob zagonu se bi pa sprožil program ki bi prvo pozdravil in izpisal v prvi vrstici
Živjo Jurči. nato pa CITROEN ZX 1,8I TO BI SE ODVILO V ROKU 10 SEC nato pa bi v prvi vrstici kazalo 5sekund uro sekuno pa CITROEN ZX 1.8I IN SPET URO.... v spodnji vrstici pa po uvodu Živjo jurci in Citroen zx1.8i nato položaj menjalnika. ko pa avto ugasnem bi se tudi lahko odvil napis ADIJO in zacel kazati samo uro brez osvetlitve
$regfile = "m32def.dat"
$crystal = 8000000
Config Porta = Input
Tipka7 Alias Pina.0
Tipka8 Alias Pina.1
Tipka9 Alias Pina.2
Tipka10 Alias Pina.3
Tipka11 Alias Pina.4
Tipka12 Alias Pina.5
Config Lcd = 16 * 2
Config Lcdbus = 4
Config Lcdpin = Pin , Db7 = Portd.7 , Db6 = Portd.6 , Db5 = Portd.5 , Db4 = Portd.4 , E = Portd.2 , Rs = Portd.1
Cursor On Noblink
Cls
Lcd " ZIVJO JURCI "
Waitms 400
Do
Locate 1 , 1
Lcd " CITROEN ZX 1.8i"
Locate 2 , 1
If Tipka7 = 0 Then
Lcd " R PRESTAVA "
Elseif Tipka8 = 0 Then
Lcd " 1 PRESTAVA "
Elseif Tipka9 = 0 Then
Lcd " 2 PRESTAVA "
Elseif Tipka10 = 0 Then
Lcd " 3 PRESTAVA "
Elseif Tipka11 = 0 Then
Lcd " 4 PRESTAVA "
Elseif Tipka12 = 0 Then
Lcd " 5 PRESTAVA "
Else
Lcd " OUT GEAR "
End If
Loop _________________ LP.Pavlic |
|
Nazaj na vrh |
|
|
jurcman90 Mojster
Pridružen/-a: Pet Dec 2012 16:34 Prispevkov: 27 Kraj: Stahovica
|
Objavljeno: Sob Feb 16, 2013 5:50 pm Naslov sporočila: |
|
|
Našel sem program za uro pa je napaka v 30ti in 40ti vrstici
$regfile = "m32def.dat"
$crystal = 3686400
Config Portd = Output
Config Pinb.0 = Input
Config Pinb.1 = Input
Portb.1 = 1
Portb.0 = 1
Dim Tast As Bit
Dim Tast2 As Bit
'Config lcd sets The portpins Of The Lcd
Config Lcdpin = Pin , Db7 = Portd.7 , Db6 = Portd.6 , Db5 = Portd.5 , Db4 = Portd.4 , E = Portd.2 , Rs = Portd.1
Config Lcd = 16 * 2
Cursor Off Noblink
Dim Sekunde As Word
Dim Minute As Word
Dim Ure As Word
Dim Ruck As Byte
Dim S1 As String * 2
Dim S2 As String * 2
Dim S3 As String * 2
Dim Run As Word
Dim A As Word
Cls
Config Timer1 = Timer Prescale = 1024
Enable Timer1
On Timer1 Prekinitev
Enable Interrupts
Timer1 = 61935
Run = 1
Do
S1 = Str(sekunde)
S1 = Format(s1 "00")
'
S2 = Str(minute)
S2 = Format(s2 "00")
'
S3 = Str(ure)
S3 = Format(s3 "00")
Deflcdchar 0 14 27 32 10 4 4 17 14
Locate 1 1 Lcd "cas dneva" S3 " " S2 "" S1
Select Case Sekunde
Case 1 To 5 Locate 2 1
Lcd " " Chr(0)
Case 6 To 10 Locate 2 1
Lcd " *" Chr(0)
Case 11 To 15 Locate 2 1
Lcd " **" Chr(0)
Case 16 To 20 Locate 2 1
Lcd " ***" Chr(0)
Case 21 To 25 Locate 2 1
Lcd " ****" Chr(0)
Case 26 To 30 Locate 2 1
Lcd " *****" Chr(0)
Case 31 To 35 Locate 2 1
Lcd " ******" Chr(0)
Case 36 To 40 Locate 2 1
Lcd " *******" Chr(0)
Case 41 To 45 Locate 2 1
Lcd " ********" Chr(0)
Case 46 To 50 Locate 2 1
Lcd " *********" Chr(0)
Case 51 To 55 Locate 2 1
Lcd " **********" Chr(0)
Case 56 To 60 Locate 2 1
Lcd " ***********" Chr(0)
Case 0 Locate 2 1
Lcd ""
End Select
Loop
End
Unterprog
Timer1 = 61935
Test = Pinb.0
If Test = 0 Then
Minute = Minute + 01
Waitms 100
Else
End If
Test2 = Pinb.1
If Test2 = 0 Then
Ure = Ure + 01
Waitms 100
Else
End If
If Sekunde = 59 Then
Minute = Minute + 01
Sekunde = 0
Else
Sekunde = Sekunde + 01
End If
If Minute = 60 Then
Ure = Ure + 01
Minute = 0
Else
End If
If Ure = 24 Then
Ure = 00
Else
End If
Return _________________ LP.Pavlic |
|
Nazaj na vrh |
|
|
Vlado Profesionalec
Pridružen/-a: Ned Jan 2004 16:11 Prispevkov: 556 Kraj: Ljubljana
|
Objavljeno: Sob Feb 16, 2013 7:10 pm Naslov sporočila: |
|
|
Zakaj ne označiš vrstice v katerih je napaka in napišeš kaj ti prijavi kot napako?
Saj ne pričakuješ da bomo šteli vrstice.
Bežno sem pogledal tvoj program, pri definiranju stringa moraš upoštevati da dolžina stringa mora biti večja za 1 bajt kot pričakovana dolžina stringa.
V spominu se string vedno konča z "H00".
Ti imaš:
Dim S1 As String * 2
ker ti sekunda že zasede 2 bajta, bo 00 vpisano na naslednjo lokacijo RAM-a.
Citiram: | On Timer1 Prekinitev |
kje pa imaš ta podprogram?
Mogoče bi namesto tistega UNTERPROGRAM (podprogram) napisal prekinitev? |
|
Nazaj na vrh |
|
|
jurcman90 Mojster
Pridružen/-a: Pet Dec 2012 16:34 Prispevkov: 27 Kraj: Stahovica
|
|
Nazaj na vrh |
|
|
jurcman90 Mojster
Pridružen/-a: Pet Dec 2012 16:34 Prispevkov: 27 Kraj: Stahovica
|
Objavljeno: Ned Feb 17, 2013 1:00 pm Naslov sporočila: |
|
|
Uro sem našel in mi deluje. Sedaj me pa zanima kako lahko zaženem program, ki vedno kaže samo uro. Ko pa je pritisnjena tipka pina.7 se začne spodnji program z pozdravom in položajom menjalnika.
$regfile = "m32def.dat"
Config Porta = Input
Tipka7 Alias Pina.0
Tipka8 Alias Pina.1
Tipka9 Alias Pina.2
Tipka10 Alias Pina.3
Tipka11 Alias Pina.4
Tipka12 Alias Pina.5
Config Lcd = 16 * 2
Config Lcdbus = 4
Config Lcdpin = Pin , Db7 = Portd.7 , Db6 = Portd.6 , Db5 = Portd.5 , Db4 = Portd.4 , E = Portd.2 , Rs = Portd.1
enable interrupts
Cursor On Noblink
Config Clock = Soft
Time$ = "11:58:00"
Do
Cls
Locate 1 , 1
Lcd Time$
'spodnji program pozdrav in branje prestave
Locate 2 , 1
Lcd " ZIVJO JURCI "
Waitms 400
Lcd " CITROEN ZX 1.8i"
Locate 2 , 1
If Tipka7 = 0 Then
Lcd " R PRESTAVA "
Elseif Tipka8 = 0 Then
Lcd " 1 PRESTAVA "
Elseif Tipka9 = 0 Then
Lcd " 2 PRESTAVA "
Elseif Tipka10 = 0 Then
Lcd " 3 PRESTAVA "
Elseif Tipka11 = 0 Then
Lcd " 4 PRESTAVA "
Elseif Tipka12 = 0 Then
Lcd " 5 PRESTAVA "
Else
Lcd " OUT GEAR "
End If
Loop _________________ LP.Pavlic |
|
Nazaj na vrh |
|
|
Vlado Profesionalec
Pridružen/-a: Ned Jan 2004 16:11 Prispevkov: 556 Kraj: Ljubljana
|
Objavljeno: Ned Feb 17, 2013 1:21 pm Naslov sporočila: |
|
|
Kot sem ti že nekje na začetku napisal, kodo programa pripni kot "kodo programa" in ne tako klot počneš.
Soft ura je OK če bo vse tako kot je treba, zakaj ne uporabiš zunanji RTC ki je podprt z baerijo in ura vedno ostane tako kot je treba (PCF8583, DS1307). Pri vsakem resetu naprave zdaj moraš nastaviti uro!
Pri pisanju na LCD upoštevaj da je čas 400ms ko prikazuješ podatek in ga spet pobrišeš prekratek.
Z LCD-ja briši samo tisto kar bi rad zamenjal in ne celčega LCD-ja.
Nariši svojo shemo, pripni cel program pa bomo lažje pomagali. |
|
Nazaj na vrh |
|
|
RudiP Profesionalec
Pridružen/-a: Sre Jul 2008 8:39 Prispevkov: 128 Kraj: KOPER
|
Objavljeno: Ned Feb 17, 2013 5:15 pm Naslov sporočila: |
|
|
Do premakni pod Lcd " CITROEN ZX 1.8i _________________ Lep pozdrav ! |
|
Nazaj na vrh |
|
|
jurcman90 Mojster
Pridružen/-a: Pet Dec 2012 16:34 Prispevkov: 27 Kraj: Stahovica
|
Objavljeno: Ned Feb 17, 2013 5:22 pm Naslov sporočila: |
|
|
Sm prestavil do samo mi ura neteče in izpusti tekst citroen zx _________________ LP.Pavlic |
|
Nazaj na vrh |
|
|
Vlado Profesionalec
Pridružen/-a: Ned Jan 2004 16:11 Prispevkov: 556 Kraj: Ljubljana
|
Objavljeno: Ned Feb 17, 2013 7:06 pm Naslov sporočila: |
|
|
Poskusi:
Cls
Locate 1 , 1
Lcd Time$
'spodnji program pozdrav in branje prestave
Locate 2 , 1
Lcd " ZIVJO JURCI "
Waitms 400
Locate 2 , 1
Lcd " CITROEN ZX 1.8i"
wait 1' ali Waitms 400
Cls
do
Locate 1 , 1
Lcd Time$
Locate 2 , 1
If Tipka7 = 0 Then
Lcd " R PRESTAVA "
Elseif Tipka8 = 0 Then
Lcd " 1 PRESTAVA "
Elseif Tipka9 = 0 Then
Lcd " 2 PRESTAVA "
Elseif Tipka10 = 0 Then
Lcd " 3 PRESTAVA "
Elseif Tipka11 = 0 Then
Lcd " 4 PRESTAVA "
Elseif Tipka12 = 0 Then
Lcd " 5 PRESTAVA "
Else
Lcd " OUT GEAR "
End If
Loop
Ne bo pa delalo tako kot si želiš ker boš prepogosto pisla po LCD-ju.
Naredi tako da se ura in prestave pišejo samo če pride do spremembe!
Moraš pa se tudii sam malo potruditi. |
|
Nazaj na vrh |
|
|
jurcman90 Mojster
Pridružen/-a: Pet Dec 2012 16:34 Prispevkov: 27 Kraj: Stahovica
|
Objavljeno: Ned Feb 17, 2013 9:45 pm Naslov sporočila: |
|
|
Prosil bi vas samo se kako lahko zaženem program z eno tipko teči mora pa samo toliko časa kolikor držim pritisnjeno tipko.
Ali je možno programsko isklapljati osvetlitev zaslona?
(če je kako ga lahko izklopiš in vklopiš) _________________ LP.Pavlic |
|
Nazaj na vrh |
|
|
jurcman90 Mojster
Pridružen/-a: Pet Dec 2012 16:34 Prispevkov: 27 Kraj: Stahovica
|
Objavljeno: Pet Feb 22, 2013 1:02 pm Naslov sporočila: |
|
|
A lahko kdo pove kako ugasnem zadevo ali pa dam program na reset ura mora pa teci naprej.
$regfile = "m32def.dat"
Config Porta = Input
Tipka7 Alias Pina.0
Tipka8 Alias Pina.1
Tipka9 Alias Pina.2
Tipka10 Alias Pina.3
Tipka11 Alias Pina.4
Tipka12 Alias Pina.5
Config Lcd = 16 * 2
Config Lcdbus = 4
Config Lcdpin = Pin , Db7 = Portd.7 , Db6 = Portd.6 , Db5 = Portd.5 , Db4 = Portd.4 , E = Portd.2 , Rs = Portd.1
Enable Interrupts
Cursor On Noblink
Config Clock = Soft
Time$ = "12:55:00"
Cls
Locate 1 , 1
Lcd Time$
Program:
If Pina.7 = 0 Then Goto Vklop
Goto Program
Vklop:
Locate 1 , 1
Lcd Time$
Locate 2 , 1
Lcd " ZIVJO JURCI "
Waitms 700
Locate 1 , 1
Lcd Time$
Locate 2 , 1
Lcd " CITROEN ZX 1.8i"
Waitms 500
Cls
Do
Locate 1 , 1
Lcd Time$
Locate 2 , 1
If Tipka7 = 0 Then
Lcd " RIKVERC "
Elseif Tipka8 = 0 Then
Lcd " 1. PRESTAVA "
Elseif Tipka9 = 0 Then
Lcd " 2. PRESTAVA "
Elseif Tipka10 = 0 Then
Lcd " 3. PRESTAVA "
Elseif Tipka11 = 0 Then
Lcd " 4. PRESTAVA "
Elseif Tipka12 = 0 Then
Lcd " 5. PRESTAVA "
Else
Lcd " OUT GEAR "
End If
Loop _________________ LP.Pavlic |
|
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
|