Kazalo po Svet elektronike forumu Svet elektronike
Revija za prave elektronike
 
AlbumAlbum   Pomoč pogostih vprašanjPomoč pogostih vprašanj   IščiIšči   Seznam članovSeznam članov   Skupine uporabnikovSkupine uporabnikov   Registriraj seRegistriraj se 
 Tvoj profilTvoj profil   Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil   PrijavaPrijava 

SIMULATOR MENJALNIKA
Pojdi na stran Prejšnja  1, 2, 3, 4  Naslednja
 
Objavi novo temo   Odgovori na to temo    Kazalo po Svet elektronike forumu -> Za začetnike
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
vilko
Profesionalec


Pridružen/-a: Pon Jan 2004 11:54
Prispevkov: 805
Kraj: Ljubljana

PrispevekObjavljeno: Ned Feb 03, 2013 12:35 pm    Naslov sporočila: Odgovori s citatom

Pri zadnji subrutini utripanje manjka na koncu return
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
RudiP
Profesionalec


Pridružen/-a: Sre Jul 2008 8:39
Prispevkov: 128
Kraj: KOPER

PrispevekObjavljeno: Ned Feb 03, 2013 8:32 pm    Naslov sporočila: Odgovori s citatom

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
Poglej uporabnikov profil Pošlji zasebno sporočilo
marc
Profesionalec


Pridružen/-a: Ned Maj 2009 10:08
Prispevkov: 243
Kraj: Polzela

PrispevekObjavljeno: Pon Feb 04, 2013 9:32 pm    Naslov sporočila: Odgovori s citatom

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
Poglej uporabnikov profil Pošlji zasebno sporočilo
vilko
Profesionalec


Pridružen/-a: Pon Jan 2004 11:54
Prispevkov: 805
Kraj: Ljubljana

PrispevekObjavljeno: Tor Feb 05, 2013 7:28 am    Naslov sporočila: Odgovori s citatom

Ja, s tem si vklopil interne pullup upore.
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
jurcman90
Mojster


Pridružen/-a: Pet Dec 2012 16:34
Prispevkov: 27
Kraj: Stahovica

PrispevekObjavljeno: Čet Feb 07, 2013 1:20 pm    Naslov sporočila: Odgovori s citatom

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
Poglej uporabnikov profil Pošlji zasebno sporočilo
jurcman90
Mojster


Pridružen/-a: Pet Dec 2012 16:34
Prispevkov: 27
Kraj: Stahovica

PrispevekObjavljeno: Sob Feb 16, 2013 5:50 pm    Naslov sporočila: Odgovori s citatom

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
Poglej uporabnikov profil Pošlji zasebno sporočilo
Vlado
Profesionalec


Pridružen/-a: Ned Jan 2004 16:11
Prispevkov: 555
Kraj: Ljubljana

PrispevekObjavljeno: Sob Feb 16, 2013 7:10 pm    Naslov sporočila: Odgovori s citatom

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
Poglej uporabnikov profil Pošlji zasebno sporočilo
jurcman90
Mojster


Pridružen/-a: Pet Dec 2012 16:34
Prispevkov: 27
Kraj: Stahovica

PrispevekObjavljeno: Sob Feb 16, 2013 7:18 pm    Naslov sporočila: Odgovori s citatom

To sem našel na: http://www.youtube.com/watch?v=GWFBRE-_pD0
_________________
LP.Pavlic
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
jurcman90
Mojster


Pridružen/-a: Pet Dec 2012 16:34
Prispevkov: 27
Kraj: Stahovica

PrispevekObjavljeno: Ned Feb 17, 2013 1:00 pm    Naslov sporočila: Odgovori s citatom

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
Poglej uporabnikov profil Pošlji zasebno sporočilo
Vlado
Profesionalec


Pridružen/-a: Ned Jan 2004 16:11
Prispevkov: 555
Kraj: Ljubljana

PrispevekObjavljeno: Ned Feb 17, 2013 1:21 pm    Naslov sporočila: Odgovori s citatom

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
Poglej uporabnikov profil Pošlji zasebno sporočilo
RudiP
Profesionalec


Pridružen/-a: Sre Jul 2008 8:39
Prispevkov: 128
Kraj: KOPER

PrispevekObjavljeno: Ned Feb 17, 2013 5:15 pm    Naslov sporočila: Odgovori s citatom

Do premakni pod Lcd " CITROEN ZX 1.8i
_________________
Lep pozdrav !
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
jurcman90
Mojster


Pridružen/-a: Pet Dec 2012 16:34
Prispevkov: 27
Kraj: Stahovica

PrispevekObjavljeno: Ned Feb 17, 2013 5:22 pm    Naslov sporočila: Odgovori s citatom

Sm prestavil do samo mi ura neteče in izpusti tekst citroen zx
_________________
LP.Pavlic
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
Vlado
Profesionalec


Pridružen/-a: Ned Jan 2004 16:11
Prispevkov: 555
Kraj: Ljubljana

PrispevekObjavljeno: Ned Feb 17, 2013 7:06 pm    Naslov sporočila: Odgovori s citatom

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
Poglej uporabnikov profil Pošlji zasebno sporočilo
jurcman90
Mojster


Pridružen/-a: Pet Dec 2012 16:34
Prispevkov: 27
Kraj: Stahovica

PrispevekObjavljeno: Ned Feb 17, 2013 9:45 pm    Naslov sporočila: Odgovori s citatom

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
Poglej uporabnikov profil Pošlji zasebno sporočilo
jurcman90
Mojster


Pridružen/-a: Pet Dec 2012 16:34
Prispevkov: 27
Kraj: Stahovica

PrispevekObjavljeno: Pet Feb 22, 2013 1:02 pm    Naslov sporočila: Odgovori s citatom

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
Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo    Kazalo po Svet elektronike forumu -> Za začetnike Časovni pas GMT + 1 ura, srednjeevropski - zimski čas
Pojdi na stran Prejšnja  1, 2, 3, 4  Naslednja
Stran 3 od 4

 
Pojdi na:  
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