-         

Ergebnis 1 bis 3 von 3

Thema: PIC 12F508 Zeitschleifen-Problem

  1. #1

    PIC 12F508 Zeitschleifen-Problem

    Anzeige

    Hallo zusammen, bin relativ neu in der PIC-Materie und habe jetzt schon mein erstes Problem, wollte mal schnell mit einer
    Zeitschleife die 2 LEDs mit einem Blinklicht testen, es stimmt aber vorne
    und hinten nicht.

    Code:
        list      p=12F508            ; list directive to define processor
        #include <p12F508.inc>        ; processor specific variable definitions
    
        __CONFIG   _MCLRE_OFF & _CP_OFF & _WDT_OFF & _IntRC_OSC
    
    ; '__CONFIG' directive is used to embed configuration word within .asm file.
    ; The lables following the directive are located in the respective .inc file. 
    ; See respective data sheet for additional information on configuration word.
    
    
    
    
    ;***** VARIABLE DEFINITIONS
    TEMP_VAR    UDATA
    sGPIO		res 1
    cn1			res 1
    cn2			res 1
    cn3			res 1
    
    
    ;**********************************************************************
    RESET_VECTOR    CODE   0x1FF      ; processor reset vector
    
    ; Internal RC calibration value is placed at location 0x1FF by Microchip
    ; as a movlw k, where the k is a literal value.
        
    MAIN    CODE    0x000
        movwf   OSCCAL            ; update register with factory cal value 
    
    ;Initialisierung
    start   
    	movlw	b'00000000'			;OPTION-Register konfigurieren, damit TRIS nicht überschrieben
    	OPTION						;wird.
    	movlw	b'11111001'			;GP1,GP2 = Ausgänge.
    	Tris	GPIO
    	clrf	sGPIO
    ;Main
    
    flash
    	movf	sGPIO,w
    	xorlw	b'00000110'	
    	movwf	GPIO
    	movwf	sGPIO
    
    ;warten
    
    	clrf	cn1
    	clrf	cn2
    	movlw	.23
    	movwf	cn3
    
    w1
    	nop						;1 Cycle
    	nop						;1 Cycle
    	decfsz	cn1,f			;1 Cycle	
    	
    	goto 	w1				;2 Cycle
    							;(256*5)=1280
    
    	nop						;1 Cycle
    	nop						;1 Cycle
    	decfsz	cn2,f			;1 Cycle	
    	
    	goto 	w1				;2 Cycle
    							;1280*(*256*5)=1638400
    	
    	nop						;1 Cycle
    	decfsz	cn3,f			;1 Cycle
    	goto	w1				;2 Cycle
    							;1634800*(4*23)=150732800µs=150,73s=2,5min
    	goto flash		
    	
    
        END                       ; directive 'end of program'


    die LEDs leuchten nur 8sec statt 2,5min. Als Quarz wird das interne mit
    4Mhz verwendet

  2. #2
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    66
    Beiträge
    10.970
    Hallo kraemer90!

    Schau, bitte, ins Wiki http://www.roboternetz.de/wissen/ind.../PIC_Assembler unter "Pause".

    MfG

  3. #3
    so habe jetzt das Programm fertig und will einen SMD-Programmer ätzen. (Habe das PICKIT2)

    Stimmt die geroutete Platine so?

    GND habe ich so verlegt, damit die Datenleitung von der Taktleitung abgeschirmt ist.
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken pic_programmer.png  

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •