Sida 2 av 3
Postat: 12 april 2008, 21:07:58
av probe
Läs databladet....
Postat: 13 april 2008, 00:33:46
av sodjan
Det finns inget att ställa in i MPLAB.
Du väljer bara "rätt" CONFIG till din krets (i koden)
Se rellevanta delar av databladet samt slutet på
INC-filen för din processor där alla alternativ finns
listade.
Sen, det är inte så där jättevanligt att man anser att man
behöver en "canned oscillator". Vad är det i just detta fall
som gör att en vanlig kristall inte fungerar ?
Postat: 13 april 2008, 12:30:43
av warrior
Sodjan!
Jag tänkte att man sätter config bitarna i mplab , det går väl göra i menyn.
Men det kanske är bättre att lära sig att skriva det i koden.
Vad händer om det står annat i mplab än i koden. är det koden som bestämmer då?
Varför jag vill använda en kristalloscillator var för det krånglade bara när jag kör på labbplatta. Fick då lite hjälp som sa att en komplett oscillator är inte så kännslig!
Postat: 13 april 2008, 12:49:05
av sodjan
> Jag tänkte att man sätter config bitarna i mplab , det går väl göra i menyn.
Jo, det säg så. Själv har jag aldrig kollat eller använt det...
> Men det kanske är bättre att lära sig att skriva det i koden.
Jag tycker att det är bättre, eftersom det i alla fall hör ihop med koden.
Dessutom, om du någon gång vill ha hjälp på t.ex ett forum, och postar
lite kod som du har problem med, så är det överlägset bättre att ha
CONFIG med i koden !!
> Vad händer om det står annat i mplab än i koden. är det koden som bestämmer då?
Jag *tror* det. Men skit samma, strunta bara i menyerna...
Postat: 13 april 2008, 15:52:37
av bos
warrior skrev:Vad händer om det står annat i mplab än i koden. är det koden som bestämmer då?
Tryck på F1 när du valt Configure -> Configuration bits så får du reda på det.
Postat: 13 april 2008, 22:53:38
av warrior
Problemen fortsätter.
Använder mig nu av:
__config _OSC_ECIO_1H
Men då säger mplab att man ska använda kommandot CONFIG för pic18.
Jag har läst och läst men får det inte att fungera och förstår inte hur jag ska skriva.
Det står _OSC_ECIO_1H i inc-filen ska man skriva
CONFIG OSC=ECIO
Det är en komplett kristalloscillator processorn är pic18f2480
Om någon är kunnig på detta föklara för mig!
Postat: 14 april 2008, 00:11:20
av sodjan
För en annan PIC18 men du förstår principen:
Kod: Markera allt
;**********************************************************
; CONFIG settings
;
config OSC = HS, OSCS=OFF, PWRT = ON, BOR = OFF
config WDT = OFF, CCP2MUX = OFF, STVR = OFF, LVP = OFF
config DEBUG = OFF, CP0 = OFF, CP1 = OFF, CP2 = OFF
config CP3 = OFF, CPB = OFF, CPD = OFF, WRT0 = OFF
config WRT1 = OFF, WRT2 = OFF, WRT3 = OFF, WRTB = OFF
config WRTC = OFF, WRTD = OFF, EBTR0 = OFF, EBTR1 = OFF
config EBTR2 = OFF, EBTR3 = OFF, EBTRB = OFF
;
;**********************************************************
Byt ut till det som gäller för din processor och de val som du vill ha.
Postat: 14 april 2008, 19:20:10
av warrior
Tack Sodjan för svaret!
Förstår pricipen precis.
Problemet är att det känns inte som mplab tar emot det.
Den ändrar inte färg på det och felmeddelanden är många!
Kan jag missat nån mer inställning i mplab.
Har ställt in rätt processor.
/John[/img]
Postat: 14 april 2008, 19:27:16
av sodjan
> och felmeddelanden är många!
Jaha. Det är väl bara att läsa vad de säger och fixa problemet !
Varför säga *här* att du får många fel ? Ganska meningslöst...
> Kan jag missat nån mer inställning i mplab.
Kanske det...

Postat: 14 april 2008, 20:07:22
av warrior
Om jag inte skriver nån config i texten får jag 0 fel och 0 varningar.
Men skriver jag: config OSC = ECIO, WDT=OFF
får jag 50-60 fel och varningar.
Lägger in några!
Det kan hända att det inte säger er något om ni inte ser programmet.
Men är det någon som känner igen det som kanske vet vad som fattas.
Warning[220] D:\OBD-PROJEKT\BLINKTEST.ASM 20 : Address exceeds maximum range for this processor.
Warning[220] D:\OBD-PROJEKT\BLINKTEST.ASM 21 : Address exceeds maximum range for this processor.
Warning[220] D:\OBD-PROJEKT\BLINKTEST.ASM 23 : Address exceeds maximum range for this processor.
Warning[220] D:\OBD-PROJEKT\BLINKTEST.ASM 24 : Address exceeds maximum range for this processor.
Warning[220] D:\OBD-PROJEKT\BLINKTEST.ASM 26 : Address exceeds maximum range for this processor.
Warning[220] D:\OBD-PROJEKT\BLINKTEST.ASM 27 : Address exceeds maximum range for this processor.
Warning[220] D:\OBD-PROJEKT\BLINKTEST.ASM 32 : Address exceeds maximum range for this processor.
Warning[220] D:\OBD-PROJEKT\BLINKTEST.ASM 33 : Address exceeds maximum range for this processor.
Error[116] D:\OBD-PROJEKT\BLINKTEST.ASM 35 : Address label duplicated or different in second pass (Blink)
Warning[220] D:\OBD-PROJEKT\BLINKTEST.ASM 35 : Address exceeds
;****************************************************************
LIST P=18f2480 ;Anger kompilator för processorn
#include <p18f2480.inc>
;****************************************************************
;**********************************************************
; CONFIG settings
;
config OSC = ECIO, WDT=OFF
;
;**********************************************************
Postat: 14 april 2008, 20:10:36
av bos
Och du har i hjälpen slagit upp vad varning #220 och fel #116 mer konkret innebär, antar jag?
Postat: 14 april 2008, 20:11:48
av sodjan
Och rad 20-33, vad finns på dom ??????
> ; CONFIG settings
> ;
> config OSC = ECIO, WDT=OFF
>
> ;
Hade jag "config" i pos 1 i mitt exempel ?
EDIT: Pos 1 är exklusivt reserverad för *labels*...
Postat: 14 april 2008, 21:56:17
av warrior
Tacksam om det finns någon som vill hjälpa mig seriöst istället för att hugga och tala om för en med andra ord att man är dum i huvudet.
Tala om konkret vad ni behöver veta så säger jag det.
Vet inte vad jag ska börja leta. Har sökt i hjälpen men det hjälper mig inte.
SODJAN jag har inte config i position 1 blev fel när jag klippte in det i inlägget.
Postat: 14 april 2008, 22:28:20
av Icecap
Dina "fel" är ett antal varningar (de kallas "Warning") vilket betyder att du ska kolla upp det. I detta fall verkar ditt program vara för stort.
Sedan visar du ett (1) fel (de kallas "Error"): 'Blink'-labeln finns i två (eller fler) ställen (vanligt) eller den har ändrat värde inför andra genomgången (ganska ovanligt).
Detta har alltså INGET med config att göra...
Det vore tacksamt om du faktisk LÄSER de varningar du får och försöker förstå vad de innebär när vi nu är igång med tacksamheter.
Att DU tolkar något ur vad ingen har sagt är DITT problem.
"Warning[220] D:\OBD-PROJEKT\BLINKTEST.ASM 20 : Address exceeds maximum range for this processor." översätts till:
"Varning[220] D:\OBD-PROJEKT\BLINKTEST.ASM 20 : Adress överstiger maximum tillåtet för denna processor"
Programmet är alltså helt enkelt för stort till att det kan passa i minnet på processorn. Ganska enkelt eller hur?
Postat: 14 april 2008, 22:37:22
av warrior
Icecap!
Som jag skrev innan att om jag tar bort raden med config så försvinner alla fel och varningar!
Programmet är absolut inget stort program, jag klistrar in det, blir inte så bra när man gör det bara.
Kod: Markera allt
;***************************************************************************
LIST P=18f2480 ;Anger kompilator för processorn
#include <p18f2480.inc>
;****************************************************************************
;**********************************************************
; CONFIG settings
;
config OSC = ECIO, WDT=OFF
;
;**********************************************************
START: MOVWF PORTA ;Nollställer Port A
MOVWF PORTB ;Nollställer Port B
MOVLW 0x00 ;Skriver värdet 00 hex till W registret
MOVWF TRISA ;Värdet sparas i riktningsregistret för port A
;Vilket innebär att alla bitarna blir utgångar
MOVLW 0x00 ;Skriver värdet 00 hex till W registret
MOVWF TRISB ;Värdet sparas i riktningsregistret för port B
;Vilket innebär att alla bitarna blir utgångar
;Slut på initiering
;*****************************************************************************
MOVLW 0x02 ;Lägg 02 i register W
MOVWF PORTA ;Lägg ut detta på PORT A för att bland annat aktivera krets 74HCT541 på laborationskort MT3
Blink: MOVLW 0x00 ;Lägg 1 i register W
MOVWF PORTB ;Lägg ut innehållet i register W på Port B för att tända lysdioden.
CALL Delay ;Subrutinanrop: Delay
CALL Delay
MOVLW 0xff ;Lägg 00 i register W
MOVWF PORTB ;Lägg ut innehållet i register W på Port B för att släcka lysdioden.
CALL Delay
CALL Delay
MOVLW 0x00
MOVWF PORTB
CALL Delay ;Subrutinanrop: Delay
CALL Delay
GOTO Blink ;Repetera.
Delay: MOVLW 0xff ;Tidsfördröjning ca 1 sekund
MOVWF 0x0d
Loop2: MOVLW 0xff
MOVWF 0x0c
Loop1: DECFSZ 0x0c,1
GOTO Loop1
DECFSZ 0x0d,1
GOTO Loop2
RETURN
END
Det blev bättre!
Tack Bos!