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 

Težave z resetom up/down counterja-Flowcode

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Microchip PIC
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
PZUFIC
Vseved



Pridružen-a: Sob 17 Nov 2007 19:06
Prispevkov: 6987
Aktiv.: 31.16
Kraj: Rakek

PrispevekObjavljeno: Sre Feb 02, 2011 7:35 pm    Naslov sporočila:  Težave z resetom up/down counterja-Flowcode Odgovori s citatom

Ker sem se končno naučil programirati, sem se začel ukvarjati z modernizacijo nekaterih mojih dosedanjih projektov.

Eden izmed njih je tudi posodobitev naprave za navijanje transformatrojev, dušilk...tako, da bo imela digitalni števec, ki bo zaznaval tudi smer vrtenja in na podlagi tega prištel oziroma odštel od trenutne vrednosti, ter znal pri določeni nastavljeni vrednosti spustiti zvočni signal oziroma ustaviti frekvenčnik.

Zataknilo pa se je pri resetu števca. Dokler je števec v položaju do 9 se stvar s pritiskom na tipko lepo resetira, kakor pa vrednost zasede več kot eno mesto na displayu pa se na 0 postavi samo prvo mesto drugo pa ne.

Kako naj rešim to težavo?

Program prilagam v priponki.



Števec za navijanje.rar
 Opis:

Download
 Ime datoteke:  Števec za navijanje.rar
 Velikost datoteke:  2.08 KB
 Downloadano:  10 krat


_________________
Ne čakaj, da se bo nekaj premaknilo pojdi in nekaj premakni.
Lp Primož
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran MSN Messenger - naslov
igo
Član
Član



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

PrispevekObjavljeno: Sre Feb 02, 2011 10:14 pm    Naslov sporočila:   Odgovori s citatom

Nimam FC, zato ne morem videti programa ...
1. Malo nerodno si napisal: "... prvo mesto, drugo pa ne". Iz katere strani gledaš število - iz leve ali iz desne?

Če gledaš iz desne, potem ti višje cifre ostanejo na zaslonu nedotaknjene, moral pa bi jih povoziti s presledki. Ali vsaj z ničlami.

2. Kako imaš izveden izpis cifer števila?
Ima vsaka cifra svojo spremenljivko, ali imaš pretvorbo iz 16bit (dve spremenljivki za zapis števila) v 5 cifer?

Če imaš za vsako cifro svojo spremenljivko, enostavno v vse vpiši 0 in jih izpiši na zaslon. Če je ničla vodilna, lahko tudi presledek vpišeš.
Če imaš 16-bitno število in ga sproti pretvoriš, se tak simptom načeloma ne bi smel zgoditi.

Vedno izpiši vse cifre, ne glede na velikost števila. Tudi pri 00000, ali ____0 .

_________________
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
PZUFIC
Vseved



Pridružen-a: Sob 17 Nov 2007 19:06
Prispevkov: 6987
Aktiv.: 31.16
Kraj: Rakek

PrispevekObjavljeno: Sre Feb 02, 2011 11:59 pm    Naslov sporočila:   Odgovori s citatom

Gledam od leve proto desni.

Na zaslonu se mi pač izpisuje trenutno stanje spremenljivke števec. Reset pa naredi števec=0 vendar naredi to samo za prvo cifro od leve proti desni. Ob vsakem ciklu programa se izpis na LCD-ju pobriše in nato glede na stanje spremenljiv ponovno vpiše.

_________________
Ne čakaj, da se bo nekaj premaknilo pojdi in nekaj premakni.
Lp Primož
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran MSN Messenger - naslov
borber
Član
Član



Pridružen-a: Pon 23 Maj 2005 8:40
Prispevkov: 3111
Aktiv.: 12.59
Kraj: LJUBLJANA

PrispevekObjavljeno: Čet Feb 03, 2011 8:15 am    Naslov sporočila:   Odgovori s citatom

Pred izpisom spremenljivke, ki ima vrednost 0 moraš na LCD najprej na željeno mesto vpisati prazen string " " in potem spremenljivko. Lahko pa vpišeš string "0 " in ti potem spremenljivke ni treba vpisovati.
Vpis ničle spremeni le skrajno levo štev. mesto desna mesta pa ostanejo taka, kot pred vpisom.
Enak problem boš imel pri odštevanju ovojev, ko se bo spremenljivka spremenila iz trimestne na dvomestno in dvomestno na enomestno (100>99, 10>9).
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
PZUFIC
Vseved



Pridružen-a: Sob 17 Nov 2007 19:06
Prispevkov: 6987
Aktiv.: 31.16
Kraj: Rakek

PrispevekObjavljeno: Čet Feb 03, 2011 8:32 am    Naslov sporočila:   Odgovori s citatom

borber je napisal/a:
Pred izpisom spremenljivke, ki ima vrednost 0 moraš na LCD najprej na željeno mesto vpisati prazen string " " in potem spremenljivko. Lahko pa vpišeš string "0 " in ti potem spremenljivke ni treba vpisovati.
Vpis ničle spremeni le skrajno levo štev. mesto desna mesta pa ostanejo taka, kot pred vpisom.
Enak problem boš imel pri odštevanju ovojev, ko se bo spremenljivka spremenila iz trimestne na dvomestno in dvomestno na enomestno (100>99, 10>9).

Ne razumem te čisto dobro.Mi lahko prosim poveš na katero mesto moram torej dodati string" ".

_________________
Ne čakaj, da se bo nekaj premaknilo pojdi in nekaj premakni.
Lp Primož
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran MSN Messenger - naslov
borber
Član
Član



Pridružen-a: Pon 23 Maj 2005 8:40
Prispevkov: 3111
Aktiv.: 12.59
Kraj: LJUBLJANA

PrispevekObjavljeno: Čet Feb 03, 2011 9:14 am    Naslov sporočila:   Odgovori s citatom

To mesto si določil s kurzorjem 0,1 kamor vpisuješ stevec.

tako

stevec=0
PrintString "Stevilo ovojev:"
Cursor 0,1
PrintString " "
Cursor 0,1
PrintNumber stevec

ali

stevec=0
PrintString "Stevilo ovojev:"
Cursor 0,1
PrintString "0 "

PrintString "Stevilo ovojev:" vpišeš samo pri inicializaciji LCD, potem vpisa ni treba več ponavljati.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
stane
Član
Član



Pridružen-a: Tor 17 Apr 2007 21:19
Prispevkov: 1281
Aktiv.: 5.54
Kraj: Rače

PrispevekObjavljeno: Čet Feb 03, 2011 9:30 am    Naslov sporočila:   Odgovori s citatom

Inicializacija LCDja na začetku manjka.
Vmes med programom pa manjka čiščenje - brisanje.
Glej sliko. Primere uporabe LCDja si oglej.
Najdeš jih na Matrixovi strani, pri SLO zastopniku (echo.si),
youtube........



Števec.JPG
 Opis:
 Velikost datoteke:  181.95 KB
 Pogledana:  24 krat

Števec.JPG


Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo Obišči avtorjevo spletno stran
stane
Član
Član



Pridružen-a: Tor 17 Apr 2007 21:19
Prispevkov: 1281
Aktiv.: 5.54
Kraj: Rače

PrispevekObjavljeno: Čet Feb 03, 2011 9:46 am    Naslov sporočila:   Odgovori s citatom

Tu imaš primer uporabe LCDja.


LCD.rar
 Opis:

Download
 Ime datoteke:  LCD.rar
 Velikost datoteke:  8.41 KB
 Downloadano:  2 krat

Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo Obišči avtorjevo spletno stran
PZUFIC
Vseved



Pridružen-a: Sob 17 Nov 2007 19:06
Prispevkov: 6987
Aktiv.: 31.16
Kraj: Rakek

PrispevekObjavljeno: Čet Feb 03, 2011 11:31 am    Naslov sporočila:   Odgovori s citatom

Čisščenje sem dodal že pred nekaj časa in sem ga dal takoj za loop na začetku programa vendar ni pomagalo. Bom upošteval vaše nasvete in poskusil.
_________________
Ne čakaj, da se bo nekaj premaknilo pojdi in nekaj premakni.
Lp Primož
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran MSN Messenger - naslov
igo
Član
Član



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

PrispevekObjavljeno: Čet Feb 03, 2011 3:24 pm    Naslov sporočila:   Odgovori s citatom

Ti že daš spremenljivko stevec na 0000, ampak na LCD bi lahko takole izpisal:
...
[LCD kurzor na pozicijo]
|
stevec > 999 ?
NO YES ; Če je NO, izpiše presledek, če je YES pa stevec in gre ven
|
[izpis presledka]
|
stevec > 99 ?
NO YES ; Če je NO, izpiše še en presledek, če je YES pa stevec in gre ven
|
[izpis presledka]
|
stevec > 9 ?
NO YES ; Če je NO, izpiše še en presledek, če je YES pa stevec in gre ven
|
[izpis presledka]
|
[IZPIS STEVCA] ; sem pride, če je zgoraj kak YES
|
ven iz zanke


Potem nekje zgoraj izračunavaš stevec (ga povečuješ, zmanjšuješ, brišeš, prednastavljaš, ...), spodaj pa ga vedno na enak način izpisuješ. Vedno se izpišejo vsa mesta, kot presledek ali kot cifra.

Stvar je v tem, da imaš ti izpis levo poravnan. Ko je stevec = 0, izpišeš 0 na levi strani LCDja, ostala mesta na LCDju pa ostanejo nedotaknjena.
V mojem primeru bo izpis desno poravnan. Če bo stevec=0 bo 0 na desni strani, višje cifre pa bodo levo od nje - v obliki presledkov.

V primeru negativnih vrednosti (odvijaš tuljavo) pred izpisom stevca preveriš predznak in ga izpišeš, nato pa še stevec.

_________________
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
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Microchip PIC Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
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: 233 dni


Powered by phpBB © 2001, 2005 phpBB Group