Wie weet hoe ik deze uC zo kan programmeren in ASM dat hij zijn interne clock gebruikt? Ik word niet echt wijs uit de data sheet momenteel...

http://ww1.microchip.com/downloads/en/DeviceDoc/39598e.pdf

Op 20 januari 2006 16:38:15 schreef willyp:
Wie weet hoe ik deze uC zo kan programmeren in ASM dat hij zijn interne clock gebruikt? Ik word niet echt wijs uit de data sheet momenteel...

http://ww1.microchip.com/downloads/en/DeviceDoc/39598e.pdf

Heb het als volgd geprobeerd:

BSF H'2007',H'0004'
BSF H'008F',H'0004'
BSF H'008F',H'0002'

MOVLW B'00010100'
MOVWF H'008F'

maar mocht helaas niet werken :(

Zet dit in het begin van je code.
Lees bestand P16F819.INC eens door voor alle opties


        LIST P=16F819
        include <P16F819.INC>
	__CONFIG _CP_OFF & _CPD_OFF & _BODEN_OFF & _MCLR_ON & _PWRTE_ON & _WDT_OFF & _INTRC_IO & _LVP_OFF

DE optie _INTRC_IO geeft wat je wil. Interne oscilator en de pinnen als io gebruiken.

[Bericht gewijzigd door Willie Worteltje op ]

En waar kan je dan de snelheid instellen?

ik had dit geprobeerd:

MOVLW B'00010100'
MOVWF H'008F'

[Bericht gewijzigd door willyp op ]

Op 20 januari 2006 20:18:32 schreef willyp:

En waar kan je dan de snelheid instellen?

ik had dit geprobeerd:

MOVLW B'00010100'
MOVWF H'008F'

En dit:

ORG 0 ;Reset vector address

BANKSEL OSCCON
BSF OSCCON,IRCF1
BSF OSCCON,IRCF2
BSF OSCCON,IRCF0
BSF OSCCON,IOFS
BCF STATUS,RP0 ;Switch Back to reg. Bank 0
GOTO RESET ;goto RESET routine when boot.

Maar werkt helaas niet

Probeer dit eens:


         BANKSEL OSCCON
         MOVLW   B'01110000' ;8Mhz
IOFSHIGH BTFSS   OSCCON,IOFS ;wacht tot IOFS is hoog
         GOTO    IOFSHIGH
         BCF     STATUS,RP0
         --> Ga verder met code

lees dit eens uit de datasheet(blz 37)
4.5.4 MODIFYING THE IRCF BITS

Ik heb nu dit geprobeerd;


			BANKSEL	OSCCON
      	  	MOVLW   B'01100000' ;4Mhz
IOFSHIGH	BTFSS   OSCCON,IOFS ;wacht tot IOFS is hoog
      	   	GOTO    IOFSHIGH
			BCF		STATUS,RP0	;Switch Back to reg. Bank 0
			GOTO	RESET		;goto RESET routine when boot.

Maar werkt helaas ook niet, blijft in de loop hangen. Maar moet je niet hetgene wat je in je W register schrijft niet een directie geven?

[Bericht gewijzigd door willyp op ]

De config kan je niet onder het draaien editten afaik. het heet niet voor niets config... RTFD

Op 21 januari 2006 15:04:29 schreef elmowww:
De config kan je niet onder het draaien editten afaik. het heet niet voor niets config... RTFD

Wat versta je onder config? En wat betekend afaik.?

Dit is mijn hele code btw:



LIST P=16F819
        include <P16F819.INC>
	__CONFIG _CP_OFF & _CPD_OFF & _BODEN_OFF & _MCLR_ON & _PWRTE_ON & _WDT_OFF & _LVP_OFF & _INTRC_IO


		ORG	0		;Reset vector address

			BANKSEL	OSCCON
			BSF		OSCCON,IRCF2
IOFSHIGH	BTFSS   OSCCON,IOFS ;wacht tot IOFS is hoog
      	   	GOTO    IOFSHIGH
			BCF		STATUS,RP0	;Switch Back to reg. Bank 0
			GOTO	RESET		;goto RESET routine when boot.


;		*********************************************
;		*  Example of a delay routine               *
;		*********************************************

DELAY_ROUTINE   MOVLW   D'100'         ;54 Generate approx 10mS delay at 4Mhz CLK
                MOVWF   TIMER2
DEL_LOOP1       MOVLW   D'100'	       ;60	
                MOVWF   TIMER1
DEL_LOOP2       
		BTFSC	PORTA,SW1
		GOTO	EFFECT_1
		BTFSC	PORTA,SW2
		GOTO	EFFECT_2
		BTFSC	PORTA,SW3
		GOTO	EFFECT_3
		BTFSC	PORTA,SW4
		GOTO	EFFECT_4
		DECFSZ  TIMER1,F
                GOTO    DEL_LOOP2
                DECFSZ  TIMER2,F
                GOTO    DEL_LOOP1
		RETLW   0


;	       **********************************
;              **  RESET :  main boot routine  **
;              **********************************

RESET	
		;

		BANKSEL	TRISB
		MOVLW	B'11000000'
		MOVWF	TRISB		;RB7 & RB6 are inputs.
					;RB5...RB0 are outputs.

BANKSEL 	PORTA ; select bank of PORTA
CLRF 		PORTA ; Initialize PORTA by
; clearing output
; data latches
BANKSEL 	ADCON1 ; Select Bank of ADCON1
MOVLW 		0x06 ; Configure all pins
MOVWF 		ADCON1 ; as digital inputs
MOVLW 		0xFF ; Value used to
; initialize data
; direction
MOVWF	 	TRISA ; Set RA<7:0> as inputs


		BCF	STATUS,RP0	;Switch Back to reg. Bank 0
		CLRF	PORTB
		GOTO	EFFECT_1		
		;

[Bericht gewijzigd door willyp op ]

Op 21 januari 2006 14:52:58 schreef willyp:

Maar werkt helaas ook niet, blijft in de loop hangen. Maar moet je niet hetgene wat je in je W register schrijft niet een directie geven?

Idd vergeten te schrijven in OSCCON. Dom. Dus moet zijn.


         BANKSEL OSCCON
         MOVLW   B'01110000' ;8Mhz
         MOVWF   OSCCON
IOFSHIGH BTFSS   OSCCON,IOFS ;wacht tot IOFS is hoog
         GOTO    IOFSHIGH
         BCF     STATUS,RP0
         --> Ga verder met code

Op 21 januari 2006 15:48:48 schreef Willie Worteltje:
[...]
Idd vergeten te schrijven in OSCCON. Dom. Dus moet zijn.


         BANKSEL OSCCON
         MOVLW   B'01110000' ;8Mhz
         MOVWF   OSCCON
IOFSHIGH BTFSS   OSCCON,IOFS ;wacht tot IOFS is hoog
         GOTO    IOFSHIGH
         BCF     STATUS,RP0
         --> Ga verder met code

heb ik geprobeerd, geen verandering helaas :-\

heb je misschien msn oid? handiger voor mij om vragen te stellen!

Voor degenen die het probleem ook hebben en die een VelleMan kit gebruiken;

Telkens als je de Config verandert in je programma (.asm) dan moet je ervoor zorgen dat je flasher (progpic2.exe) opnieuw het bestand opent. Dit is omdat hij maar 1 keer tijdens het openen de Config Word leest en daarna niet meer.

Kan je heel veel gezeik besparen!

Complete code om je 16F819 op 8 mhz te laten lopen:
(enkel in MP Lab)


LIST P=16F819
        include <P16F819.INC>
	__CONFIG _CP_OFF & _CPD_OFF & _BODEN_OFF & _MCLR_ON & _PWRTE_ON & _WDT_OFF & _LVP_OFF & _INTRC_IO
ORG	0
         BANKSEL OSCCON
			BSF		OSCCON,IRCF2
			BSF		OSCCON,IRCF1
			BSF		OSCCON,IRCF0

IOFSHIGH BTFSS   OSCCON,IOFS ;wacht tot IOFS is hoog
         GOTO    IOFSHIGH
         BCF     STATUS,RP0