MPLAB v8.5, ICD3 und PIC12F675 in C
Mittwoch, 23. Mai 2012
 
 

PIC Mikrocontroller Forum  |  PIC Mikrocontroller  |  Entwicklungswerkzeuge  |  Programmer und Debugger  |  MPLAB v8.5, ICD3 und PIC12F675 in C « vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: MPLAB v8.5, ICD3 und PIC12F675 in C  (Gelesen 888 mal)
 
joh2
Newbie
*
Offline Offline

Beiträge: 2


Profil anzeigen
« am: Juni 18, 2011, 14:40:59 »

Hallo,
ich möchte den "Hallo-Welt" Port-Toggler auf einem PIC12F675 mit internem
Oszillator. Problem ist, daß sich der PIC auf dem AC162050 Debug-Header
ausschweigt. Wäre schön wenn jemand hier ein Stück getesteten Code hat,
der zumindest mal ein Beinchen toggelt.
siehe auch
http://tinyurl.com/5tzw3jk

Danke
joh
Gespeichert
Stephan
Jr. Member
**
Offline Offline

Beiträge: 88


Profil anzeigen
« Antworten #1 am: Juni 18, 2011, 16:04:00 »

Das ist easy, toggelt sogar 2 LEDs Smiley

Code:
;***********************************************************************
; Pinbelegung 12F675
;
;                  +---###---+
;          +++ Vdd |  1    8 | Vss ---
;             GP 5 |  2    7 | GP 0  / LED 0
;             GP 4 |  3    6 | GP 1  / LED 1
;             GP 3 |  4    5 | GP 2
;                  +---###---+
;
;***********************************************************************

list p=12f675
#include <P12f675.INC>

ERRORLEVEL -302

__CONFIG _MCLRE_OFF & _PWRTE_OFF & _WDT_OFF & _INTRC_OSC_NOCLKOUT & _BODEN_OFF

;**************************************************************
; Variablennamen vergeben

loops EQU 0x22 ; Zähler für Warteschleife
loops2 EQU 0x23 ; Zähler für Warteschleife  

#define LED0 GPIO, 0 ; LED 0
#define LED1 GPIO, 1 ; LED 1

bank0 macro
bcf STATUS, RP0 ; Bank 0
endm

bank1 macro
bsf STATUS, RP0 ; Bank 1
endm

;***********************************************************************
;***********************************************************************

    org    0x00
    goto   init

;***********************************************************************
; hier evtl. Interrupt

    org    0x04

; hier nix Interrupt

;***********************************************************************

init

; alle Comparator-Eingänge auf Digital umschalten
bank0
movlw 0x07
movwf CMCON ; alle Pins von comp auf digital

; alle Analog-Eingänge auf Digital umschalten
bank1
clrf ANSEL ; alle Pin von analog auf digital
clrf TRISIO ; alle Pins Output

bank0
clrf GPIO ; alle Pins auf 0

; interner Taktgenerator
bank1
call 0x3FF ; hole OSCCAL-Wert
movwf OSCCAL ; 4-MHz-Kalibrierung

; sonstiges
bank0

;***********************************************************************

main

bsf LED0 ; LED 0 ein
call wait250
bcf LED0 ; LED 0 aus

bsf LED1 ; LED 1 ein
call wait250
bcf LED1 ; LED 1 aus

goto main

;***********************************************************************
;***********************************************************************
; Warteschleife 250 ms

wait250
movlw   D'250' ; 250 Durchläufe
movwf   loops

wait1ms
movlw   D'110' ; 110 x 9 us = 1 ms
movwf   loops2
wait9us  
nop                    
nop
nop
nop
nop
nop
decfsz  loops2, F ; 1 ms vorbei?
goto    wait9us ; nein, noch nicht

decfsz  loops, F ; 250 ms vorbei?
goto    wait1ms ; nein, noch nicht

return ; das Warten hat ein Ende

;***********************************************************************

end
« Letzte Änderung: Juni 18, 2011, 16:12:09 von Stephan » Gespeichert
Seiten: [1] Nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  

Powered by MySQL Powered by PHP Made for Mozilla (Firefox) Made for Internet Explorer
Seite erstellt in 0.034 Sekunden mit 18 Zugriffen.
 
Top! Top!