hallo, sinds ik een pc op linux heb wil ik mijn microchips met assembler programmeren. alleen nu loop ik tegen een probleem. ik weet niet hoe ik de config bits moet "setten" misschien dat iemand mij hierbij kan helpen. ik wilde graag PWRTE on en een interne oscillator gebruiken.
dit is een proefcode om asm te proberen

; An LED Blinker
; Around 10 times per second

	list p=16f648a
	include "p16f648a.inc"

small_delay_tmp	equ	0x20
long_delay_tmp	equ	0x21



	goto main

small_delay:
	movlw 0xff
	movwf small_delay_tmp
small_delay_L1:
	decfsz small_delay_tmp, F
	goto small_delay_L1
	return

; ----------------------------
; W contains count on entry.
; Store it in a temp variable.
; Keep on decrementing and
; calling small_delay
; ----------------------------
	
long_delay:
	movwf long_delay_tmp
long_delay_L1:
	call small_delay
	decfsz long_delay_tmp, F
	goto long_delay_L1
	return

; ----------------------------
; Here comes the main LED blinker
; ----------------------------

main:
	bsf STATUS, 0
	movlw 0x0
	movwf TRISB ; All pins outputs
	bcf STATUS, 0

infinite:
	bcf PORTB, 0
	movlw 0x82
	call long_delay
	bsf PORTB, 0
	movlw 0x82
	call long_delay
	goto infinite
	
	end

Doorgaans werkt het op de manier zoals op onderstaande link beschreven:
http://www.sq-1.com/config.html

succes!

En als je op zoek gaat naar de include file, waarschijnlijk
C:\Program Files\Microchip\MPASM Suite\p16f648A.inc,
zul je daarin netjes alle symbolische namen aantreffen voor deze PIC.

Op 8 september 2007 00:51:04 schreef picsels:
En als je op zoek gaat naar de include file, waarschijnlijk
C:\Program Files\Microchip\MPASM Suite\p16f648A.inc,
zul je daarin netjes alle symbolische namen aantreffen voor deze PIC.

linux

uhm..... ;)

't is al laat.
Maar gelukkig zei ik 'waarschijnlijk' :-)

Maarre... welke assembler gebruiken we hier dan??

Op 8 september 2007 01:06:16 schreef picsels:
't is al laat.
Maar gelukkig zei ik 'waarschijnlijk' :-)

Maarre... welke assembler gebruiken we hier dan??

Ik vermoed dat je compiler bedoelt?

Op 8 september 2007 01:25:06 schreef Jeroen Boere:
Ik vermoed dat je compiler bedoelt?

de code van neoel ziet er uit als assembler, dus ik denk dat hij toch echt een assembler gebruikt. als ik me goed herinner werkt MPASM prima onder wine. Of anders gpasm.

en die include file staat genoemd in de code, dus hij zal weinig moeite hebben die te vinden.

hier is een lijstje met config words voor de 16F628A


_BODEN_ON
_BODEN_OFF
_BOREN_ON 
_BOREN_OFF
_CP_ON    
_CP_OFF
_DATA_CP_ON 
_DATA_CP_OFF
_PWRTE_OFF  
_PWRTE_ON   
_WDT_ON     
_WDT_OFF    
_LVP_ON    
_LVP_OFF   
_MCLRE_ON  
_MCLRE_OFF 
_RC_OSC_CLKOUT 
_RC_OSC_NOCLKOUT 
_ER_OSC_CLKOUT   
_ER_OSC_NOCLKOUT 
_INTOSC_OSC_CLKOUT 
_INTOSC_OSC_NOCLKOUT  
_INTRC_OSC_CLKOUT   	
_INTRC_OSC_NOCLKOUT	
_EXTCLK_OSC             
_HS_OSC                 
_XT_OSC                 
_LP_OSC                 

voor de precieze betekenis van deze config words moet je even in de data sheat kijken van de 16F628A
link naar data sheat

hieronder staat de regel die jij waarschijnlijk nodig zult hebben:


__CONFIG        _BODEN_ON & _CP_OFF & _DATA_CP_OFF &
                _PWRTE_ON & _WDT_OFF & _LVP_OFF & 
                _MCLRE_OFF & _INTRC_OSC_NOCLKOUT

dit staat voor: brown-output detect enable => aan, code protection => uit, Power-up Timer enable => aan, watchdog timer => uit, low voltage programming => uit,mclr enable => uit en interne oscillator met geen clock out. dit wel allemaal even netjes achter elkaar zetten ;)

ik gebruik de compiler/assambler gpasm. (gputils)

bedankt voor de info.. ik ga het direct uitproberen

[Bericht gewijzigd door neoel op (62%)]

laat even weten of je het aan de praat hebt ;)

hmm nee.. ik heb geen idee waar het aan ligt. maar er gaat geen lampje knipperen. de compiler geeft alleen nog maar de waarschuwing dat ik misschien in de vekeerde bank zit (kon ik geloof ik negeren aangezien ik wel van bank switch).

en programmeren gaat goed.. alleen al zet ik de chip aan met een lampje op RB0, dan gaat die niet knipperen.

en het ligt waarschijnlijk wel aan de code.. want als ik de hex van blinkaled van de voti site haal. en die prog.. gaat het lampje (op RA0) wel knipperen.

[Bericht gewijzigd door neoel op (18%)]

ik zie in jou code ook nergens terug waar het programma begint.
hier even een standaart opmaak voor een ASM-programma:




	  
       	list		p=16f628
		#include	"p16F628.inc"

		__CONFIG        _BODEN_ON & _CP_OFF & _DATA_CP_OFF & _PWRTE_ON & _WDT_OFF & _LVP_OFF & _MCLRE_OFF & _INTRC_OSC_NOCLKOUT
		errorlevel -302
				
; ***** DEFINES *****
; hier kun je je #define's neer zetten als je die hebt
; ***** EQUATES *****
; hier komen je EQU's
;bijv: VVOORBEELD    EQU    0x20     ;0x20 is de eerste vrije geheugenplaats!!

	ORG     0x00      ;naar je EQU's altijd ORG 0x00 dit geeft het begin van je programma aan!

       ORG      0x04      ; dit is het begin van je interupt routine als je deze nodig mocht hebben

; *********** INITIALISEER DE POORTEN *************
INIT	        ; hier ga je al je poorten goed zetten

MAIN            ; hier begint je "echte" programma


      goto    main    ; zorgt voor een oneindige lus

      END             ; is nodig om het einde van je programma aan te geven

hoop dat je hier wat aan hebt.
Post anders je code nog een keer, wat je nu hebt bedoel ik dan ;)
dan kan men er even naar kijken en met je mee denken.

ik heb de bug gevonden... ik zat inderdaad wel in de verkeerde bank.. ik weet niet hoe hij er in geslopen is.. maar dit is de fout


main:
	bsf STATUS, 0
	movlw 0x0
	movwf TRISB ; All pins outputs
	bcf STATUS, 0

in deze regel: bsf STATUS, 0

ik moest hier bit 5 hebben of RP0

bedankt voor de tips.. (die waren wel handig)

Misschien het moment om meer met constanten, macro's etc. te gaan werken?