Sida 2 av 4
Postat: 5 december 2006, 13:58:22
av sodjan
Du menar de två prio nivåer som finns i PIC18 arkitekturen ?
Väldigt sällan som man behöver använda det, och det strular till
interrupt hanteringen en hel del. Nyckel till en bra interrupt hantering
är att interrupt-rutinerna är så korta/snabba som möjligt.
Som du säger, om du ändå inte kör med MB's inbyggda funktioner
så är steget til asm inte så stort.

Postat: 5 december 2006, 14:26:43
av RasmusB
Kul att du fick det att funka

Hur många gånger samplar du knapparna med AD-omvandlaren?
Postat: 5 december 2006, 14:46:09
av JimmyAndersson
sodjan:
"Du menar de två prio nivåer som finns i PIC18 arkitekturen ?"
Japp.
"Väldigt sällan som man behöver använda det, och det strular till
interrupt hanteringen en hel del."
Aha! Men då gör det alltså inget att det saknas.
RasmusB:
Jag kör med Tosc/16 för tillfället. (Kör PIC'en med 8MHz.)
Kan passa på att fråga om "Acquisition Time" (ADCON2 ACQT2:ACQT0)
Jag har läst Section 17.3 några gånger, men jag hänger inte riktigt med på vad det är.
When the GO/DONE bit is set, the selected channel is sampled for the programmed acquisition time before a conversion is actually started. This removes the firmware overhead that may have been required to allow for an acquisition (sampling) period (see Register 17-3 and Section 17.3 Selecting and Configuring Automatic Acquisition.
Vad innebär "This removes the firmware overhead..." ?
Postat: 5 december 2006, 14:50:02
av sodjan
Att du inte behöver vänta i din kod ?
Postat: 5 december 2006, 14:53:26
av JimmyAndersson
Ja kanske det.

Postat: 5 december 2006, 14:58:35
av sodjan
Alltså,
*Utan* "Automatic Acquisition" måste du själv vänta "acquisition time"
efter ett kanalbyte innan du startar en omvandling (via GO). Alltså
"firmware overhead"...
*Med* "Automatic Acquisition" så kommer processorn själv att vänta ut
"acquisition time" efter att GO är satt och innan omvandligen startar.
Bara att välja ADC-kanal och sätta GO direkt.
(Jag orkade inte öppna databladet, men så måste det vara...

)
Postat: 5 december 2006, 15:45:54
av JimmyAndersson
Aha! Då förstår jag.

Postat: 5 december 2006, 18:32:30
av RasmusB
JimmyAndersson skrev:
RasmusB:
Jag kör med Tosc/16 för tillfället. (Kör PIC'en med 8MHz.)
Inte så jag menade, jag undrar om det räcker med att göra en
en AD-omvandling? Eller måste du göra flera för att vara säker på vilken knapp som är nertryckt?
Postat: 5 december 2006, 20:32:57
av JimmyAndersson
Oj, jag läste lite dåligt.
Det räcker med att göra en läsning eftersom jag kollar om värdet ligger inom ett område. T.ex så ger en av knapparna 511 eller 512, men eftersom jag kör med
if (knapp >=506) AND (knapp <= 516) then... så stämmer det alltid.
Men jag har märkt att IF-raderna tar ganska mycket processortid. De ligger visserligen inte i interrupt-delen längre, men det är ju trevligt om allt flyter på så bra som möjligt, så jag funderar på att testa med flera omvandlingar och göra en medelvärdesberäkning istället.
En enda
värde = avläsning1 + avläsning2 osv / antal borde väl ta mindre processorkraft/tid än 6st IF-rader där varje dessutom innehåller en AND.
Postat: 5 december 2006, 21:05:30
av sodjan
Du skulle kunna göra så att du bara använder de högsta 8 bitarna, då
slipper Basic kompilatorn att generera 16-bitars operationer för dina
IF satser och det bör bli betydligt mer kompakt.
Postat: 5 december 2006, 22:42:18
av JimmyAndersson
Bra idé! Det blev mycket bättre. Dessutom minskade hex-filens storlek med 0,5kB.
Nu känner jag mig nöjd med den här delen. Knapparna kan läsas av tillräckligt snabbt trots att en timer ger interrupt 3,815 gånger i sekunden. Nu är det dags för knapparna att få lite uppgifter. Men först en backup av koden.

Postat: 5 december 2006, 22:44:03
av RasmusB
Hmm... vad är det du bygger förresten?

Postat: 5 december 2006, 23:02:27
av JimmyAndersson
Om man korsar en TFT-skärm med en UV-box och en halv scanner så får man mitt projekt.
Det blir en pryl som exponerar kretskort utan att man behöver skriva ut kretskortslayouten. Några funktioner: Tidstyrd belysning, mätning av UV-ljuset, mm. Sedan finns några små roliga finesser som jag inte vill avslöja än.
Det "materiella" är 95% klart. Nu återstår bara 20% programmering och ett kretskort. Det blir nog en projekt-tråd i slutet av veckan.
Postat: 6 december 2006, 00:36:05
av RasmusB
Coolt!

Ska hålla ögonen öppna...

Postat: 6 december 2006, 00:48:04
av bearing
0,5 kB !!
uj uj, ingen bra kompilator.