Nu er der blot af og til skønhedsfejl i form af svagt lys i nogle segmenter, som burde være slukket.
F.eks. er der ved et vedvarende tryk på NULSTILLINGs-knappen af og til svagt lys i g-segmentet (det miderste) - ikke i et fast mønster, men blot "af og til".
Er det det fænomen, som nogen af jer kalder "skygger" ?
Kan der siges noget generelt om, hvordan sådan noget fjernes.
Skygger kommer af at driveren ikke kan følge med MPU'en, dvs. cifret før bliver vist svagt.
Sørger for at holde en pause med alle cifre slukket, hver gang der skiftes til næste ciffer. Længden af pausen bestemmes af hvor hurtig driveren er om at slukke og hvor meget skygge der tillades.
Nedblænder du tallet, inden at du skifter til næste segment? Hvis ikke, så vil der opstå "efterslæb".
Proceduren kan gøres således: ... ... vælg næste display udskriv resultat direkte vent blænd ned ... ...
Sikre sig, at et tryk på reset-knappen /kun/ aktiveres, hvis knappen nedtrykkes OG der er behov for reset. Dvs. at rydde op, gør hvad der skal gøres og herefter glemme alt om et aktivt resetben, indtil at du atter trykker på knappen. Den giver kun et lille (meget utydeligt) blink i displayet som ikke vil ses med det menneskelige øje.
Tilfældigheden kan opstå pga. et brud på din multiplexing, hvor du ikke får lukket ordenlig ned for alle dine portben.
Hmm... godt spørgsmål, generelt så skal man jo ikke forsøge at cleare ens inputben. Ellers er du jo kun ganske få instruktioner fra, at kunne gøre det "ordenligt", f.eks. ved at AND'e: med 10000b til din PORTA.
"Lars T. Thomsen" skrev i en meddelelse news:41f43b01$0$48328$ snipped-for-privacy@news.sunsite.dk...
Ja, stort set - hvis "blænd ned" = clrf PORTA
får
Nu er det ikke MCLR (ben 4) jeg mener, men en "hjemmelavet" reset, som blot nulstiller de variable, som vises i displayet, og det som undrer mig er at netop g-segmentet lyser - det bruges jo slet ikke i et nul ! Men det er måske bedre at anvende MCLR - det ville da i hverfald spare noget kode og noget omdefinering af nogle porte undervejs !
det
Det vil jeg da bare ændre for en sikkerheds skyld.
Men iøvrig er programmet ændret totalt i forhold til den tidligere kode, idet der var rod i hvilke banks jeg kom tilbage til efter interruptet, men det er rettet nu.
Jeg vil også ændre således at mine indkommende pulser til tælling kommer på RB0 og interrupter her - der er noget syncroniseringsrod med clocken, hvis de kommer ind via TMR0. TMR0 skal jeg også beuge når RPM skal implementeres.
Jeg har ikke adgang til de binære nyhedsgrupper, så dette kodespecifikke spørgsmål kan jeg ikke svare på....
Hehe. Jeg mente nu ikke MCLR :-) Problemet er bare, at du ikke skal blive véd med, at køre din reset, så lad hellere hovedløkken drøne derudaf, så displayet kan opdateres. Hvis reset er nedtrykket, så udfør dét reset-routinen skal. Det tager jo blot et kort øjeblik og skal kún gøres: Eén- og den eneste gang. Herefter skal der blot ses bort fra, at brugeren ikke når, at slippe fingeren fra kontakten i tide. Først når knappen er sluppet, så kan man atter polle på, om brugeren atter nedtrykker reset. Derved undgår du dette problem ved vedvarende tryk på reset. Lyder underligt mht. g-segmentet... Hvis den kan udskrive nuller (på normal vis), så kunne det måske være, at du ikke får indlæst de rigtige registre, når du tager fat på konverteringen af 7-segmenterne under reset?
Jeps, det er da en brugbar løsning. Sæt evt. en diode (f.eks. 1N4148) modsat strømretningen over din pull-up modstand og aflad kondensatoren med reset kontakten via. en 100 ohms seriemodstand. Dét vil din uP (på længere sigt) være dig evig taknemmelig for!
Har du ikke en kondensator mellem /MCLR og til stel, der tager sig af POR (Power On Reset)? Ideen er, at /MCLR holder PIC'en nulstillet i et stykke tid, indtil at man er nogenlunde sikker på, at PIC'en får en stabil strømforsyning.
ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here.
All logos and trade names are the property of their respective owners.