CCPR1L:CCP1CON<5:4> = ???

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Erik M
Inlägg: 1380
Blev medlem: 23 februari 2012, 18:34:39
Ort: Göteborg

Re: CCPR1L:CCP1CON<5:4> = ???

Inlägg av Erik M »

Tack Janne.

Det är en modul till slotracing, så hög frekvens på PWM är av nöden, för att motorerna inte ska gå varma.

Jo, jag skulle föredra att låta DC1B vara.
Dvs vara '00', och därmed följa med max och noll CCPR1L.
Med bara sex bitars upplösning blir det dock inte görligt, det kommer krävas minst 32 (fem bitar) olika hastighetsnivåer när man stoppar handtaget i näven på någon som Mikael Landerud....
Vilket skulle kunna lösas med sju bitars upplösning, men då blir frekvensen för låg...

Det går iofs att bara komma att använda de fyra, av sex totalt, MSB...
..."upplösningen" är ju då nominella 64 diskreta hastigheter.
Erik M
Inlägg: 1380
Blev medlem: 23 februari 2012, 18:34:39
Ort: Göteborg

Re: CCPR1L:CCP1CON<5:4> = ???

Inlägg av Erik M »

Nästa sak att lösa ut är att mäta en ADC om 6 bitar och sedan öka på den med 25% (helst 20%, men låt oss följa det binära...).

Har jag förstått rätt så ser den vanliga koden för ADC ut såhär:

Kod: Markera allt

    BSF     ADCON0,ADON
    BSF     ADCON0,GO
    BTFSS   ADCON0,GO
    GOTO    $-1
Men skulle oxå kunna skrivas såhär:

Kod: Markera allt

stepADC    equ    0x20
...
    movlw    0xA
    movwf    stepADC
    BSF     ADCON0,ADFM
    BSF     ADCON0,ADON
    BSF     ADCON0,GO
get_step:
    NOP
    DECFSZ  stepADC
    GOTO    get_step
Och om så, då skulle ett initialt stepADC om 0x6 ge oss en ADC om sex bitar, korrekt?
Men... Det bygger på att varje upprepning ger en bit av ADC...

Om Fosc är 8MHz och ADCS är '101', dvs Fosc/16 så ska varje Tad vara 2µs.
Så varje get_step ovan måste ta 2µs, dvs fyra instructionscycler.
Vilket den oxå ganska precis gör, med den tillagda NOP.

Blir det rätt så?
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: CCPR1L:CCP1CON<5:4> = ???

Inlägg av sodjan »

> Vilket skulle kunna lösas med sju bitars upplösning, men då blir frekvensen för låg...

Jag skulle byta till PIC12F1840 (eller någon annan PIC12F1xxx). Då får du en
internt osc på 32 MHz (istället för 8 Mhz) och ett par extra bitars PWM upplösning
vid samma PWM frekvens på köpet. Samt en modernare processor rent allmänt.
Verkar ge 10 bitar vid 17 KHz, d.v.s att alla 8 bitar i CCPR1L kan användas och
DC1B bitarna kan hållas som "00".

När det gäller ADCn så fattar jag inte vad du gör. ADC modulen är 10 bitar
och ger alltid ett 10 bitars resultat.
bearing
Inlägg: 11676
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Re: CCPR1L:CCP1CON<5:4> = ???

Inlägg av bearing »

Erik M skrev:Vilket skulle kunna lösas med sju bitars upplösning, men då blir frekvensen för låg...
8Mhz / 128 = 62,5kHz. Är du medveten om vilka krav du stället på hårdvaran ifall du tänker använda så hög frekvens?
Erik M
Inlägg: 1380
Blev medlem: 23 februari 2012, 18:34:39
Ort: Göteborg

Re: CCPR1L:CCP1CON<5:4> = ???

Inlägg av Erik M »

Det är nog bra om jag gör det Janne, byter upp mig.
Men nu har jag dessa liggande...

Japp bearing, det vet jag. Och det funkar.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: CCPR1L:CCP1CON<5:4> = ???

Inlägg av sodjan »

> Men nu har jag dessa liggande...

Jo, så brukar det ju vara... :-)
Jag har nog några 12F1840 liggandes på kontoret.
Jag kan skicka över ett per st. ifall du vill testa i alla fall.
bearing
Inlägg: 11676
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Re: CCPR1L:CCP1CON<5:4> = ???

Inlägg av bearing »

Kul att det funkar. Lycka till med resten av programmet.
Erik M
Inlägg: 1380
Blev medlem: 23 februari 2012, 18:34:39
Ort: Göteborg

Re: CCPR1L:CCP1CON<5:4> = ???

Inlägg av Erik M »

Du känner igen fenomenet... :mrgreen:

Ökad kunskap och möjlighet uppskattas högeligen, så att säga... :tumupp:

Och du vet adressen sedan hyfsat långt tillbaka... :mrgreen:
Senast redigerad av Erik M 15 juli 2015, 21:31:58, redigerad totalt 1 gång.
Erik M
Inlägg: 1380
Blev medlem: 23 februari 2012, 18:34:39
Ort: Göteborg

Re: CCPR1L:CCP1CON<5:4> = ???

Inlägg av Erik M »

Tack bearing, det är hjälp med MC's idéer som behövs. De är inte alltid, någonsin, speciellt funktionella..

Utan att nu vilja reta upp någon och efter ett antal glas vin och mindre Jägermeister vill jag påstå att BTFSS och BTFSC skulle fungera otroligt mycket mer lättillgängligt om de formulerades som BTFDS & BTFDC.
Dvs bit test file do If set och bit test do If clear...
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: CCPR1L:CCP1CON<5:4> = ???

Inlägg av sodjan »

> Och du vet adressen sedan hyfsat långt tillbaka...

OK.
Jag antar att det är samma som i april i år.
Jag kollar på torsdag ifall jag hittar några...
Erik M
Inlägg: 1380
Blev medlem: 23 februari 2012, 18:34:39
Ort: Göteborg

Re: CCPR1L:CCP1CON<5:4> = ???

Inlägg av Erik M »

Define är i det näsrmaste oanständigt kraftfull.

Det fungerar göra detta, verkar det som:

Kod: Markera allt

#define	BTFDS	BTFSC	; Bit Test File Do if Set
#define	BTFDC	BTFSS	; Bit Test File Do if Clear
Är det verkligen så simpelt?
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: CCPR1L:CCP1CON<5:4> = ???

Inlägg av sodjan »

Ja, men helt onödigt och gränsande till ganska dumt.
Det måste finnas viktigare programmeringsproblem
att lägga tid på...
Erik M
Inlägg: 1380
Blev medlem: 23 februari 2012, 18:34:39
Ort: Göteborg

Re: CCPR1L:CCP1CON<5:4> = ???

Inlägg av Erik M »

Eftersom det därmed är löst är tiden redan lagd - och väl använd därtill.

Den formulering som används, BTFSS/SC, är i grunden en negation.
Vilket leder till en kedja av negationer - något som mycket snabbt blir tre stycken och därmed ej möjlig lösa.

Genom att ta bort den första blir det aldrig mer än en negation att hantera.

Ändringen att tänka, "då skall jag göra så", istället för "då skall jag låta bli göra så", gör att formulering blir direkt kompatibel med vårt sätt att tänka.

"Och där, uppe i vänstra hörnet, sitter det ingen apa. Inte ens en skinnlapp."
Erik M
Inlägg: 1380
Blev medlem: 23 februari 2012, 18:34:39
Ort: Göteborg

Re: CCPR1L:CCP1CON<5:4> = ???

Inlägg av Erik M »

Men nu är det löst - och jag har ett programmeringsproblem.

Hur får man HEX-filen att "bita"?
Det händer flera gånger att PICkit 2'an inte verkar få över koden.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46973
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: CCPR1L:CCP1CON<5:4> = ???

Inlägg av TomasL »

Tja, det beror väl på vilka felmeddelanden du får.
Skriv svar