www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

89c52 in 3x4 tipkovnica
Pojdi na stran Prejšnja  1, 2
 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> AVR, LPC900, x51
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
toncibalonci
Član
Član



Pridružen-a: Pet 03 Avg 2007 21:12
Prispevkov: 331
Aktiv.: 1.52
Kraj: Dravograd

PrispevekObjavljeno: Pon Maj 05, 2008 9:34 pm    Naslov sporočila:   Odgovori s citatom

Ne, na treh,v multiplexu!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
klemen88
Član
Član



Pridružen-a: Tor 01 Jan 2008 17:37
Prispevkov: 747
Aktiv.: 3.51
Kraj: Slovenj Gradec

PrispevekObjavljeno: Pon Maj 05, 2008 9:53 pm    Naslov sporočila:   Odgovori s citatom

Kot vidim nisi edini, ki bi imel probleme z matrično tipkovnico. Jaz sam imam probleme z 3x4 na attinyu. Ampak so mi fantje povedli rešitev vendar še nisem imel časa stestirat....
Upam da ti bo uspelo ker sam vem kako je ko testiraš veliko stvari in ti še kar ne deluje :S
Lp
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
toncibalonci
Član
Član



Pridružen-a: Pet 03 Avg 2007 21:12
Prispevkov: 331
Aktiv.: 1.52
Kraj: Dravograd

PrispevekObjavljeno: Pon Maj 05, 2008 10:02 pm    Naslov sporočila:   Odgovori s citatom

Klpz,zate ne vem,ampak jaz sem bolj začetnik v Bascomu zato mi to tudi dela probleme. Eni fantje na tem forumu pa zelo obvladajo stvar in jim je to enostavno. Še dobro da obstaja ta forum Exclamation Exclamation
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
igo
Član
Član



Pridružen-a: Sre 11 Okt 2006 19:11
Prispevkov: 3641
Aktiv.: 16.01

PrispevekObjavljeno: Pon Maj 05, 2008 10:23 pm    Naslov sporočila:   Odgovori s citatom

toncibalonci je napisal/a:
Nimam vezja ampak Bascom testno ploščo. Na P2 imam tipkovnico,kot je napisano v programu, P3 imam za display, P1.0 , P1.3 , P1.4 pa je multiplex. Mislim da tu ni kaj narobe.
Seveda je!
Spregledal sem namreč, da je P1.0 že zaseden. Zato mora iti Enako nekam drugam !!! Enako je izhodni pin, ki je aktiven takrat, ko je koda prava.
Izbriši tudi tisti Cifra = 0 pod Debounce=40 Exclamation

Nekje v globinah spomina vidim stavek:
"alias" je za definiranje vhoda, ????? pa za definiranje izhoda.
Nekoč sem ga videl na enem forumu. Ne vem, kdaj. Ne vem, kje.
Tistega ????? se ne spomnim več.

Imaš kakšno knjigo o Bascom-u?

Jaz pečem (beri: programiram) PICe (beri: PIC mikrokontrolerje). Dober tek!
LP,
Igor

_________________
Teoretično je praksa posledica teorije, praktično je pa ravno obratno. (igo 2001)
LP, Igor
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
toncibalonci
Član
Član



Pridružen-a: Pet 03 Avg 2007 21:12
Prispevkov: 331
Aktiv.: 1.52
Kraj: Dravograd

PrispevekObjavljeno: Pon Maj 05, 2008 11:19 pm    Naslov sporočila:   Odgovori s citatom

"Alias" je za deklariranje spremenjlivk. Tisti "Enako" sem takoj opazil ampak to ni vzrok. Tisti "JePrava" pa preverja tipkovnico,če je bila tipka spuščena. Tisti del "Cifra" nekak ne morem spravit na display. Igo,vem da bi mi veliko lažje pomagal če bi jaz to delal z PIC-em ampak mi je Bascom bolj simpatičen. Se ti zahvaljujem da mi pomagaš!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
pato90
Član
Član



Pridružen-a: Tor 17 Apr 2007 20:16
Prispevkov: 39
Aktiv.: 0.18
Kraj: Logatec

PrispevekObjavljeno: Pon Maj 05, 2008 11:41 pm    Naslov sporočila:   Odgovori s citatom

Koda:

Dim Preveri As Byte
Dim Vrednost As Byte
Dim Cifra As Long
Dim Pom As Byte
dim kontrola as byte
'-------------------------------------------------------------------------------
Config Debounce = 40
'-------------------------------------------------------------------------------

Kolona1 Alias P2.5
Kolona2 Alias P2.4
Kolona3 Alias P2.3

'-------------------------------------------------------------------------------

Stolp1 Alias P2.2
Stolp2 Alias P2.1
Stolp3 Alias P2.0
Stolp4 Alias P2.6

'-------------------------------------------------------------------------------
Preveri_t:
do
Kolona1 = 0 : Kolona2 = 1 : Kolona3 = 1
Vrednost = 1 : Debounce Stolp1 , 0 , Sprejeta , Sub
Vrednost = 4 : Debounce Stolp2 , 0 , Sprejeta , Sub
Vrednost = 7 : Debounce Stolp3 , 0 , Sprejeta , Sub
Vrednost = 11 : Debounce Stolp4 , 0 , Sprejeta , Sub
'-------------------------------------------------------------------------------
Kolona1 = 1 : Kolona2 = 0 : Kolona3 = 1
Vrednost = 2 : Debounce Stolp1 , 0 , Sprejeta , Sub
Vrednost = 5 : Debounce Stolp2 , 0 , Sprejeta , Sub
Vrednost = 8 : Debounce Stolp3 , 0 , Sprejeta , Sub
Vrednost = 0 : Debounce Stolp4 , 0 , Sprejeta , Sub
'-------------------------------------------------------------------------------
Kolona1 = 1 : Kolona2 = 1 : Kolona3 = 0
Vrednost = 3 : Debounce Stolp1 , 0 , Sprejeta , Sub
Vrednost = 6 : Debounce Stolp2 , 0 , Sprejeta , Sub
Vrednost = 9 : Debounce Stolp3 , 0 , Sprejeta , Sub
Vrednost = 12 : Debounce Stolp4 , 0 , Sprejeta , Sub
loop
End
'-------------------------------------------------------------------------------

Sprejeta:
Preverispet:
Preveri = P2 And &B01000111
If Preveri <> &B01000111 Then
Goto Preverispet
End If
incr kontrola
if kontrola>3 then
kontrola=0
cifra=0
end if
Cifra = Cifra * 10
Cifra = Cifra + Vrednost
vrednost=0
if cifra=123 then
goto prikaz
end if
return
Do
prikaz:
Pom = Cifra / 100
Pom = Lookup(pom , Stevilke)
P3 = Pom
P1.4 = 0
Waitms 2
P1.4 = 1
Pom = Cifra Mod 100
Pom = Pom / 10
Pom = Lookup(pom , Stevilke)
P3 = Pom
P1.3 = 0
Waitms 2
P1.3 = 1
Pom = Cifra Mod 10
Pom = Lookup(pom , Stevilke)
P3 = Pom
P1.0 = 0
Waitms 2
P1.0 = 1
Loop
End

'-------------------------------------------------------------------------------
Stevilke:
Data 65 , 221 , 100 , 76 , 216 , 74 , 66 , 93 , 64 , 72

Probaj tako no še mal razlage: najprej smo v do-loop zanki kjer čakamo na pritisnjenost tipke, nato skoči v sprejeta in preverja če je tipka spuščena nato pa sešteje in če je cifra prava gre v prikaz, če pa se zmotimo pa da ni potrebno reseterat čipa se avtomatsko ko vpišemo četrto številko začne znova to bi moralo delovati čeprav ne poznam toliko bascom 8051 je pa zelo podoben bascom AVR-ju
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
igo
Član
Član



Pridružen-a: Sre 11 Okt 2006 19:11
Prispevkov: 3641
Aktiv.: 16.01

PrispevekObjavljeno: Tor Maj 06, 2008 12:01 am    Naslov sporočila:   Odgovori s citatom

Dokler ne bo prav pritisnil zaporedja, ne bo ničesar videl. Bolje je tako:
Koda:

Dim Preveri As Byte
Dim Vrednost As Byte
Dim Cifra As Long
Dim Pom As Byte
dim kontrola as byte
'-------------------------------------------------------------------------------
Config Debounce = 40
'-------------------------------------------------------------------------------

Kolona1 Alias P2.5
Kolona2 Alias P2.4
Kolona3 Alias P2.3

'-------------------------------------------------------------------------------

Stolp1 Alias P2.2
Stolp2 Alias P2.1
Stolp3 Alias P2.0
Stolp4 Alias P2.6


Do

Gosub Preveri_t

Pom = Cifra / 100
Pom = Lookup(Pom , Stevilke)
P3 = Pom
P1.4 = 0
Waitms 2
P1.4 = 1
Pom = Cifra Mod 100
Pom = Pom / 10
Pom = Lookup(Pom , Stevilke)
P3 = Pom
P1.3 = 0
Waitms 2
P1.3 = 1
Pom = Cifra Mod 10
Pom = Lookup(Pom , Stevilke)
P3 = Pom
P1.0 = 0
Waitms 2
P1.0 = 1
Loop
End

'-------------------------------------------------------------------------------
Preveri_t:

Kolona1 = 0 : Kolona2 = 1 : Kolona3 = 1
Vrednost = 1 : Debounce Stolp1 , 0 , Sprejeta , Sub
Vrednost = 4 : Debounce Stolp2 , 0 , Sprejeta , Sub
Vrednost = 7 : Debounce Stolp3 , 0 , Sprejeta , Sub
Vrednost = 11 : Debounce Stolp4 , 0 , Sprejeta , Sub
'-------------------------------------------------------------------------------
Kolona1 = 1 : Kolona2 = 0 : Kolona3 = 1
Vrednost = 2 : Debounce Stolp1 , 0 , Sprejeta , Sub
Vrednost = 5 : Debounce Stolp2 , 0 , Sprejeta , Sub
Vrednost = 8 : Debounce Stolp3 , 0 , Sprejeta , Sub
Vrednost = 0 : Debounce Stolp4 , 0 , Sprejeta , Sub
'-------------------------------------------------------------------------------
Kolona1 = 1 : Kolona2 = 1 : Kolona3 = 0
Vrednost = 3 : Debounce Stolp1 , 0 , Sprejeta , Sub
Vrednost = 6 : Debounce Stolp2 , 0 , Sprejeta , Sub
Vrednost = 9 : Debounce Stolp3 , 0 , Sprejeta , Sub
Vrednost = 12 : Debounce Stolp4 , 0 , Sprejeta , Sub

return
'-------------------------------------------------------------------------------

Sprejeta:
Preverispet:
Preveri = P2 And &B01000111
If Preveri <> &B01000111 Then
Goto Preverispet
End If
incr kontrola
if kontrola>3 then
kontrola=0
Cifra=0
end if
Cifra = Cifra * 10
Cifra = Cifra + Vrednost
vrednost=0
if Cifra=123 then
Cifra=876 '-------------------------------
end if
return

'-------------------------------------------------------------------------------
Stevilke:
Data 65 , 221 , 100 , 76 , 216 , 74 , 66 , 93 , 64 , 72
V čem to simulirate?
Imam nameščen Basscom8051 demo, pa mi errorje vrže ven. Ko vrstico zakomentiram, je pa v naslednji napaka ...
Npr. Vrednost = 1 : Debounce Stolp1 , 0 , Sprejeta , Sub izvrže
error 119, 105, 117, ...
LP,
Igor

_________________
Teoretično je praksa posledica teorije, praktično je pa ravno obratno. (igo 2001)
LP, Igor
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
pato90
Član
Član



Pridružen-a: Tor 17 Apr 2007 20:16
Prispevkov: 39
Aktiv.: 0.18
Kraj: Logatec

PrispevekObjavljeno: Tor Maj 06, 2008 12:49 am    Naslov sporočila:   Odgovori s citatom

bom jutri poiskal celotno kodo iz knjige pa jo prilepim. samo mislim da je tam za izpisovanje na lcd tako da bo treba malo spremenit
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
toncibalonci
Član
Član



Pridružen-a: Pet 03 Avg 2007 21:12
Prispevkov: 331
Aktiv.: 1.52
Kraj: Dravograd

PrispevekObjavljeno: Tor Maj 06, 2008 1:08 am    Naslov sporočila:   Odgovori s citatom

Igor zdaj pa dela,meni nikjer ne vrže ven kakih napak. Pato90,probal sem tudi tvojo verzijo in je res tako kot pravi Igor,da ne vidiš nič dokler na prav vtipkaš,vseeno hvala za trud,dobro je da vidim več verzij,tako si tudi lahko več zapomnim! Eno vprašanje,tako mimogrede. A se je mogoče znebiti tistega utripanja displeyev ko pritisneš tipko? Verjetno ne,zaradi "debounce" ukaza? Hvala obema,jutri bom pa verjetno imel spet kak novi problem. Very Happy
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
igo
Član
Član



Pridružen-a: Sre 11 Okt 2006 19:11
Prispevkov: 3641
Aktiv.: 16.01

PrispevekObjavljeno: Tor Maj 06, 2008 10:02 pm    Naslov sporočila:   Odgovori s citatom

toncibalonci je napisal/a:
A se je mogoče znebiti tistega utripanja displeyev ko pritisneš tipko? Verjetno ne,zaradi "debounce" ukaza?
Eh, to je pa čisto navaden (beri: zelo resen) hrošč, ki ga pač ima gornji program.

Zadevo se povsem enostavno reši z dobro odmerjenimi prekinitvami, da se program obnaša kot RTOS Cool .
Koda:
;********************* / PREKINITVENI PODPROGRAM \ ***************************
PrekPod               ; Prekinitveni podprogram
   bcf   INTCON,GIE      ; Onemogocimo prekinitve
   movwf   W_reg         ; Shranimo register W
   swapf   STATUS,w      
   movwf   Stat_reg      ; Shranimo register STATUS

   movlw   b'11110000'
   andwf   PORTA,f         ; Izklopimo vse cifre
   movf   Mux,w
   addwf   PCL,f
   nop ; goto   Prek000x
   goto   Prek00x0
   goto   Prek0x00
   goto   Prekx000
   clrf   Mux
Prek000x
   movf   UES,w         ; Da
   call   Znaki
   movwf   PORTB         ; Poisci ustrezno kodo znaka in jo poslji
   bsf   PORTA,0         ; Vklopi prvo cifro
   goto   PrekVen

Prek00x0
   movf   UDS,w      ; Desetice Sekund -> W
   call   Znaki         ; Poglej kodo cifre
   movwf   PORTB         ; Poslji kodo cifre na LED
   bsf   PORTA,1         ; Vklopi drugo cifro
   goto   PrekVen

Prek0x00
   movf   UEM,w      ;  Enice Minut -> W
   call   Znaki         ; Poglej kodo cifre
   andlw   b'11110111'   ; doda decimalno piko
   movwf   PORTB         ; Poslji kodo cifre na LED
   bsf   PORTA,2         ; Vklopi drugo cifro
   goto   PrekVen

Prekx000
   movf   UDM,w      ; Desetice Minut -> W
   call   Znaki         ; Poglej kodo cifre
   movwf   PORTB         ; Poslji kodo cifre na LED
   bsf   PORTA,3         ; Vklopi drugo cifro

PrekVen
   incf   Mux,f         ; Preklopi na drugo cifro

   bcf   INTCON,T0IF      ; Izklopi T0IF
   swapf   Stat_reg,w
   movwf   STATUS         ; Povrni STATUS
   movf   W_reg,w         ; Povrni W

   bsf   INTCON,GIE      ; Vklopimo GIE
   retfie            ; Konec prekinitvenega podprograma

;******************** / TABELA ZNAKOV NA LED PRIKAZOVALNIKU \****************
Znaki   addwf   PCL,f         ; Izracunaj odmik
   DT   0xB7, 0x82, 0xE5, 0xE3, 0xD2, 0x73, 0x77, 0xA2, 0xF7, 0xF3, 0x00
      ; Definicije znakov za izpis na LED prikazovalnik
Ne sprašuj, kako to izgleda v Bascom-u ... Wink
LP,
Igor

_________________
Teoretično je praksa posledica teorije, praktično je pa ravno obratno. (igo 2001)
LP, Igor
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
toncibalonci
Član
Član



Pridružen-a: Pet 03 Avg 2007 21:12
Prispevkov: 331
Aktiv.: 1.52
Kraj: Dravograd

PrispevekObjavljeno: Tor Maj 06, 2008 10:33 pm    Naslov sporočila:   Odgovori s citatom

Saj te razumem Igor,vprašenje je bilo bolj retorično. Bom probal enkrat narediti z prekinitvami,ampak za zdaj je tudi to dobro. Preveč informacij na enkrat pa tudi ni zdravo. Very Happy
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> AVR, LPC900, x51 Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Pojdi na stran Prejšnja  1, 2
Stran 2 od 2

 
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
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