Överföra program till PIC i MPLAB?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
spufuz
Inlägg: 704
Blev medlem: 15 september 2006, 00:00:39
Ort: Tanum

Inlägg av spufuz »

Ja, trodde väl jag hajjat såpass, men nu känns allt så rörigt att ja inte vet nåt känns det som!

Tror det blir till att beställa Wisp628 av sodjan...
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Förutsatt att pinnen är satt som *utgång*.
Annars kan det bli lite vad som helst...

> Men när jag kopplade in LEDen/...

Vilket värde på motståndet ?
Hur är motstånd/LED inkopplade ?
spufuz
Inlägg: 704
Blev medlem: 15 september 2006, 00:00:39
Ort: Tanum

Inlägg av spufuz »

180 ohm
Har provat att koppla både anod och katod mot PICen.

Men det spelar väl ingen roll om utgången ändå inte är hög?

ex. RB0 - resistor - anod på LED - VSS
Ersätter jag RB0 med VDD istället lyser ju LEDen så fint.
(För att säkerställa LEDens funktion dvs.)

>Förutsatt att pinnen är satt som *utgång*.
>Annars kan det bli lite vad som helst...

Jag mäter ca 2V från alla utgångar/ingångar.
Kan det vara så att inte PORTB konfigureras till utgångar som spökar?
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> Kan det vara så att inte PORTB konfigureras till utgångar som spökar?

Fråga inte här, kolla i din kod... :-)

> Kanske vore det smart att länka till programmet jag vill föra över:

Det kan inte vara den där koden, den är avsedd för en annan processor...
spufuz
Inlägg: 704
Blev medlem: 15 september 2006, 00:00:39
Ort: Tanum

Inlägg av spufuz »

> Fråga inte här, kolla i din kod...

Här sätts ju RB0 till output.

Kod: Markera allt

MOVLW b'00100000'  ;Load W register so bank 1 will be set (see statusreg in datasheets)
MOVWF STATUS       ;Move W into STATUS and now Bank 1 will be selected
MOVLW b'11111110'  ;Load W with data direction for TRISB 1=input 0=output
MOVWF TRISB        ;Move W into TRISB and RB0 will be an output
MOVLW b'00000000'  ;Load W register so bank 0 will be set (see statusreg in datasheets)
MOVWF STATUS       ;Move W into STATUS and now Bank 0 will be selected
> Det kan inte vara den där koden, den är avsedd för en annan processor...

Enligt sidan skall det ju vara för 16F870. Eller hur??
Registeradresserna stämmer ju överens med mitt datasheet för F870!
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Sorry, jag kan ha blandat ihop det med någon annan tråd där någon hade en 16F627...
Om du faktiskt har en 16F870 så bör det väl vara OK...

De PORTB-pinnarna som är *ingångar*, hur är de anslutna ?
Kom ihåg, *inga* öppna ingångar !
Om de är "öppna", gör dom till utgångar...

Sen måste vara den sämsta metoden jag sett att switcha bank ! :-)
Man får hoppas att inte de andra STATUS-bitarna är allt för viktiga... :-)
spufuz
Inlägg: 704
Blev medlem: 15 september 2006, 00:00:39
Ort: Tanum

Inlägg av spufuz »

Ja! T.o.m jag som inte kan något om detta tyckte det verkade lite knasigt.

Det borde väl räcka att göra så här?:

Kod: Markera allt

bsf             STATUS,5       ;Switch to Bank 1
movlw           00h            ;Set the Port B pins
movwf           TRISB          ;to output.
bcf             STATUS,5       ;Switch back to Bank 0 
(STATUS equ 03h samt TRISB equ 86h)

--------

> De PORTB-pinnarna som är *ingångar*, hur är de anslutna?

Var ben på PICen går till var sin kopplingsplint bredvid "breadboarden" på min programmerare.
Se HÄR. (Position 10 på bilden)

Så resten av in och utgångarna har ju ingen last eller så kopplat till dem, om det är det du menar med "öppen"?
Om jag får gissa borde ingångarna va kopplade till VSS annars?
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

"Öppna" ingångar fångar upp störningar "ur luften", speciellt 50/100 Hz
brum från nätspänningen. Det blir betydligts värre om de dessutom
är kopplade till ledningar på krtetskortet som fungerar som antenner.
Absolut enklast är att sätta alla oanvända pinnar som *utgångar* via
TRISx registrena, bara ändringar i koden och ingen extra hårdvara.
Alternativet är att fysiskt koppla alla öppna ingångar till 5V eller jord.

Koden (för att clear'a TRISB) är inte helt bra. Något bättre är att skriva :

Kod: Markera allt

bsf             STATUS, RP0       ;Switch to Bank 1
movlw           00h               ;Set the Port B pins
movwf           TRISB             ;to output.
bcf             STATUS, RPO       ;Switch back to Bank 0 
Ändå lite bättre är :

Kod: Markera allt

banksel         TRISB          ;Switch to the right bank (whitch ever it is...)
movlw           00h            ;Set the Port B pins
movwf           TRISB          ;to output.
banksel         PORTB          ;Switch back to Bank 0 (PORTx regs are always in bank 0...)
Bäst (sparar en instruktion) är att skriva:

Kod: Markera allt

banksel         TRISB     ;Switch to the right bank
clrf            TRISB     ;Set all of PORTB to outputs.
banksel         PORTB     ;Switch back to Bank 0 (PORTx regs are always in bank 0...)
Generellt, för STATUS och alla andra register som innehåller olika "bitar"
med olika funktioner, använd *ALDRIG* siffror för bitarna, utan enbart de
fördefinierade symbolerna (namnen) för bitarna.

Och för bankhanteringen, använd BANKSEL så finns det ingen risk att
du läser fel vilken bank ett visst register ligger i.

Dessutom, "bsf STATUS,5 ;Switch to Bank 1" stämmer inte.
Det ska ska stå "Switch to Bank 1 or 3", för det beror på hur RP1 är ställd !!
spufuz
Inlägg: 704
Blev medlem: 15 september 2006, 00:00:39
Ort: Tanum

Inlägg av spufuz »

OK, Ska testa detta.
Tack tillsvidare för mycket god hjälp Sodjan! Du borde nästan ha betalt! :D
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Hm, jag kan bara säga att på den punkten är jag inte alls omöjlig... :-)
Men allvarligt funderar jag på att sluta skriva i forumet och lägga tiden
(flera timmar per dag) på hemsidan och min PIC info där istället. Då kanske
man slapp skriva om samma saker varje 14'de dag... :roll:
spufuz
Inlägg: 704
Blev medlem: 15 september 2006, 00:00:39
Ort: Tanum

Inlägg av spufuz »

Ja jag kan förstå att det blir tjatigt.

Kanske någon sorts FAQ så generellt det går kunde vara på sin plats?
Som du hellre kan hänvisa till när folk behöver hjälp.

Ett axplock skulle lätt kunna göras från detta forum. :D
Användarvisningsbild
lgrfbs
Inlägg: 7320
Blev medlem: 28 januari 2005, 15:48:53
Ort: X-län
Kontakt:

Inlägg av lgrfbs »

Eller så skulle vi kunna stoppa in det i wiki sidan.... :wink:
Skriv svar