PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PIC 12F508 Zeitschleifen-Problem



kraemer90
03.03.2010, 20:01
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.


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

PICture
03.03.2010, 20:35
Hallo kraemer90!

Schau, bitte, ins Wiki https://www.roboternetz.de/wissen/index.php/PIC_Assembler unter "Pause".

MfG

kraemer90
25.03.2010, 19:55
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.