Pic och rc-styrning / navigationsljus för modellplan

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
brauer
Inlägg: 90
Blev medlem: 20 februari 2005, 14:30:00

Inlägg av brauer »

>"Fattade" efter att ha läst vadå ?

Ur databladet:
"6.1 Timer0 Interrupt
Timer0 interrupt is generated when the TMR0 register
timer/counter overflows from FFh to 00h."

Det jag inte hänger med på är hur jag ska skriva koden för att kunna använda timern. Visst, clear bit 2 och 5 i INTCON fattar jag att jag *ska* göra, men jag jag vet inte hur.
Precis samma problem som att jag inte vet *hur* jag ska läsa av en pinne.
Det enda jag kan skriva kod för är att tända och släcka en lysdiod. Däremot är jag mer än villig att lära mig mer så länkar och förklaringar tas tacksamt emot. :P
Kaggen
Inlägg: 432
Blev medlem: 29 januari 2005, 03:06:02

Inlägg av Kaggen »

brauer:

Ok, du läser databladet, men du läser inte. :)

> Visst, clear bit 2 och 5 i INTCON fattar jag att jag *ska* göra, men jag jag vet inte hur.

bcf INTCON,2 ; Clear bit 2 i INTCON
bcf INTCON,5 ; Clear bit 5 i INTCON

OBS! Det är dock mer "riktigt" att skriva "bcf INTCON,T0IF" och "bcf INTCON,T0IE" istället för bitnummret.

bcf står för Bit-Clear-Fileregister



> Precis samma problem som att jag inte vet *hur* jag ska läsa av en pinne.

btfss PORTB,RB2 ; Kollar om RB2 är satt och hoppar isåfall över nästa kommando
goto KOD_OM_RB2_INTE_AR_1

btfsc PORTB,RB2 ; Kollar om RB2 *inte* är satt och hoppar sisåfall över nästa kommando
goto KOD_OM_RB2_AR_1

btfss står för Bit-Test-Fileregister-Skip-if-Set (Testa bit i filregister, hoppa över nästa kommando om den är satt)

btfsc står för Bit-Test-Fileregister-Skip-if-Clear (Testa bit i filregister, hoppa över nästa kommando om den *inte* är satt)

Läs på "Instruction Set Summary" i databladet.
brauer
Inlägg: 90
Blev medlem: 20 februari 2005, 14:30:00

Inlägg av brauer »

Tusen tack! Nu ska jag nog kunna pilla ihop det jag vill. :razz:
sodjan
EF Sponsor
Inlägg: 43244
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> Ur databladet:
> "6.1 Timer0 Interrupt
> Timer0 interrupt is generated when the TMR0 register
> timer/counter overflows from FFh to 00h."

Japp, så när Timer0 går från FF => 00 så sätts TMR0F (tror jag att den heter).

Men det du frågade om var hur *snabbt* timer0 "räknar", och det står
inte i just den delen utan i andra delar. Leta efter "Timer0 prescaler."

Sen kan det ofta vara smidigare med Timer1, eftersom den har 16 bitar
och kan ge längre intervall.

Sen är det som Kaggen säger, sa och läs igenom beskrivningarna för
de 35 instruktionerna. Där finns även exempel på vad instruktionerna gör.

Ennu bättre är "Instruction Set - PICmicro Mid-Range MCU Family" :
http://ww1.microchip.com/downloads/en/D ... 31029a.pdf
den har mer utförligare beskrivningar av varje instruktione.

Du skulle nog även studera :

" Architecture - PICmicro Mid-Range MCU Family"
http://ww1.microchip.com/downloads/en/D ... 31004a.pdf

eller varför inte hela :
" Complete Mid-Range Reference Manual"
http://ww1.microchip.com/downloads/en/D ... 33023a.pdf
där kan du studera lite mer detaljer kring t.ex timers...
Skriv svar