HILFE - MPLAB-simulering !

Med udgangspunkt i AN557 har jeg bygget et tachometer med en 16F84, hvor pulser på PORTA skal tælles op i TMR0 og interrupter, hvorefter displayet tælles op - det kører :-\

Jeg har nogle "ringetryk" til NULSTIL og FRYSning af display'et - og dette er også lavet med udgangspunkt i AN557 og dét fungerer fint.

Der er lige 2 ting jeg godt vil have et godt svar på - hvis nogen gider:

1) Jeg synes displayet "lyser" lige svagt nok - hvad skal jeg gøre for at få det til at "lyse" kraftigere ? 1a) kalde opdatering af displayet FLERE gange i hovedloop'et ELLER 1b) indsætte delay i opdateringen, så det enkelte ciffer får lov at "lyse" længere tid (Det at sætte mindre formodstande på segmenterne tror jeg er risikabelt her i udviklingsfasen, idet programmet enkelte gange har "standset op" med rimeligt kraftigt lys kun i ét enkelt ciffer - så de skal nok ikke være mindre, da displayet så har risiko for at brænde af)

2) Når der er "fanget" ganske få pulser (men ikke hver gang samme antal !) går programmet i en uendelig løkke, hvor det IKKE tændes for de enkelte cifre i displayet - et manuelt reset får den for et kort stund ud af denne tilstand igen - hvordan kan jeg simulere dette i MPLAB og dermed finde det uendelige loop den tilsyneladende kommer ind i ?

Mvh KS

Reply to
KS
Loading thread data ...

Nu får du jo ikke dutycyclen over 100%/multiplexet. Men hvis du ikke er tæt på dette kan du gøre noget i koden! Og det bør ikke have noget med 1a eller

1c at gøre. Umiddelbart ville jeg sige at displayopdatering hører til i et interrupt....

/A

Reply to
Anders F

"Anders F" skrev i en meddelelse news: snipped-for-privacy@individual.net...

tæt

Hvad mener du med dette ? (Bemærk her, at det er MIT første større PIC-projekt !)

gøre.

Et faktum er det i hvert fald, at kaldes opdeteringsrutines flere gange lige efter hinanden, ja så bliver displayet "kraftigere lysende" (der er et punkt, hvor det IKKE bliver kraftigere ved flere succesive kald !)

interrupt....

Jeg valgte at have interrupt ved TMR0 overgangen 255-->0 idet jeg går ud fra, at timeren "fanger" alle de pulser, som jeg ønsker at tælle. Hvis jeg lægger displayopdateringen i interruptet, KAN jeg vel risikere, at miste nogle pulser medens interruptet serviceres - eller ?

Hvad med den "underlige" tilstand, som tilsyneladende optræder - det uendelige loop uden multiplexing af cifrene - (hvordan) kan den simuleres i MPLAB ?

Mvh KS

Reply to
KS

Jeg mindes en snedig tacho sag, men det passer vist ikke med dette: AN557: Four Channel Digital Voltmeter with Display and Keyboard

--
  Med venlig hilsen,    Ove Kjeldgaard,    nospam AT privat DOT dk
  Natur og Friluftsliv:
Reply to
Ove Kjeldgaard

"Ove Kjeldgaard" skrev i en meddelelse news: snipped-for-privacy@4ax.com...

Jow det passer udmærket, idet det er dette at ved mangel af porte til f.eks. NULSTILLING og FRYSNING defineres de eksisterende bare om fra Output til Input undervejs i programmet - og det er netop dette princip, der så rigeligt er anvendt i AN557.

- så derfor passer det udmærket !

..... meeeen kan du ikke mindes mere omkring den snedige sag, du omtaler ?

et link f.eks. ?

Mvh KS

Reply to
KS

Er der virkelig ikke flere, som har noget, så jeg kan komme videre ?

Gode ideer modtages meget gerne !

Mvh KS

"KS" skrev i en meddelelse news:41d2fb10$0$287$ snipped-for-privacy@dread12.news.tele.dk...

lige

IKKE

at

Reply to
KS

OK - en gang klippe klistre.

Lige nu er jeg i tvivl om det er på Microchip's hjemmeside jeg har set det. Hvis jeg finder noget, skal jeg nok vende tilbage.

Lysstyrken bør kunne blive god nok til alt andet end direkte dagslys. Hvis du bruger de segment modstande på 220 Ohm fra AN'en, nogle display med en fornuftig lysstyrke og sidst men ikke mindst at displayenes programdel sørger for at der ikke er for lange tidsrum uden lys i et af cifrene, så skal det virke. Og mindre modstande end 220 Ohm giver stort set ikke mere strøm/lys i segmenterne - men en del mere varme i PIC'en.

Frysning af programmet kan jeg ikke rigtig hjælpe med, men hvad er du skal måle? Du skriver tachometer og skriver også om en reset indgang?

--
  Med venlig hilsen,    Ove Kjeldgaard,    nospam AT privat DOT dk
  Natur og Friluftsliv:
Reply to
Ove Kjeldgaard

"Ove Kjeldgaard" skrev i en meddelelse news: snipped-for-privacy@4ax.com...

Nej det er ikke "bare" en gang klippe klistre - jeg har gennemarbejdet koden og har KUN taget det med, som jeg kunne gennemskue - sååå, jeg kan gøre rede for hele min koden.

Det har jeg netop været opmærksom på, og ladet cifrene lyse lige indtil output portene til segmenterne skulle omdefineres og bruges til input.

Ærgerligt - men programmet "fryser" vel ikke, men kører formentlig i en uendelig sløjfe, hvor der i hvert fald aldrig "tændes" for de enkelte cifre - men jeg kan vel kun "gætte" på at programmet kører i sløjfe, idet jeg kan konstatere at clocken kører.

Jeg viller gerne kunne simulere forløbet i MPLAB, men hvordan ... ?

Pulser fra en induktiv føler i en gearkasse - jeg vil lave en omdrejningtæller, men er kun kommet til at tælle pulserne op, men der er ellers kun lidt gange og division tilbage - så er den der ! (ja, så er det altså liiiige de her beskrevne problemer).

med "reset" mener jeg, at jeg kan få programmet til at starte forfra med "et 0 på ben 4" (det er en 16F84)

Er der ikke nogen af jer, der kender MPLAB og som kan fortælle, hvordan jeg kan simulere sådan en række pulser på en indgang - så jeg af den vej måske kan finde frem til "den uendelige løkke" ?

Mvh KS

Reply to
KS

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.