PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 16F84>16F628A Anfänger!



ralfmichel
04.12.2009, 16:05
Hallo!
Ich bin der Ralf und bin neu hier.
Da ich absoluter Anfänger was PICs angeht brauche ich etwas hilfe.

Aaaalso...,
ich möchte einen Timer bauen um Motoren anzusteuern.
Ich habe in Elektor eine passende Schaltung gefunden welche auf einem 16F84 basiert.
Dieser ist aber verhältnismäßig sehr teuer.
Ich habe im Netz gestöbert und herausgefunden daß der 16F628A "der" Nachfolger ist, welcher auch wesentlich billiger ist.
Habe mir auch einige gekauft.
Überall lese ich daß ich folgende Zeilen einfügen muß, nur weiß ich nicht genau wo.*schäm*

MOVLW 0x07
MOVWF CMCON

Kann mir jemand helfen den Code für den 628A fertigzustellen?

Danke

Ralf

PICture
04.12.2009, 16:34
Hallo ralfmichel!

Die zwei Zeilen musst du in die Initialisierung des PICs vor dem Hauptprogramm einfügen.

MfG

ralfmichel
04.12.2009, 17:17
Nachfolgend ist der Anfang vom code.
Wo genau ist "vor" dem Programm ?
Vor dem list p=16f84 oder danach?
Kann ich einfach dieses list p=16f84 in list p=16f628a umbenennen oder sind auch weitere Änderungen notwendig?
Möchte den 16F628A mit ext. Oszillator mit 4 Mhz betreiben.

Mfg Ralf
------------------------------------------
; compiler : jal 00.04-10
; date : 18-Aug-2000 19:19:32
; main source : duka_jal
; command line : duka_jal.txt
; target chip : 16f84
; cpu : pic 14
; clock : 4000000
; input files : 11
; lines : 1710
; chars : 42251
; compilation nodes : 9494
; stack : 23Kb
; heap : 2740Kb
; seconds : 21.648 (0 lines/second)
; output code : 231
; file : 15
; stack: 1 (1,0,0)

list p=16f84

_CP_OFF equ H'3FF0' ;code protect on
_CP_ON equ H'0000' ;code protect off
_PWRTE_ON equ H'0000' ;Power on timer on
_PWRTE_OFF equ H'0008' ;Power on timer off
_WDT_OFF equ H'0000' ;watch dog timer off
_WDT_ON equ H'0004' ;watch dog timer on
_RC_OSC equ H'0003' ;RC oscillator
_HS_OSC equ H'0002' ;HS crystal oscillator
_XT_OSC equ H'0001' ;XT crystal oscillator
_LP_OSC equ H'0000' ;LP crystal oscillator

__CONFIG _CP_OFF + _PWRTE_ON + _WDT_OFF + _XT_OSC

; var H'00C:000' transfer_bit
; var H'00D:000' transfer_byte

;; 034 : var volatile byte port_a at 5
; var H'005:000' port_a

;; 035 : var volatile byte port_b at 6
; var H'006:000' port_b

;; 055 : var volatile bit pin_b4 at port_b : 4
; var H'006:004' pin_b4

;; 115 : var byte trisa
; var H'00E:000' trisa

;; 116 : var byte trisb
; var H'00F:000' trisb

;; 117 : var byte trisc
; var H'010:000' trisc

;; 122 : movlw all_input
movlw H'FF'
_vector ; 0006: 20D8 ; _1492__vector

;; 019 : pin_b0_direction = output -- select Dekade 0

;; 516 : procedure pin_b3'put( bit in x ) is
p_3814__pin_b3__put_t ; 0095
_3814__vector ; 0095
; var H'00C:003' x
p_3814_put ; 0095

;; 517 : var bit pin_b3_buffer at _port_b_buffer : 3
; var H'011:003' pin_b3_buffer

;; 518 : pin_b3_buffer = x
bcf H'11',3 ; 0095: 1191 ; 0x11 pin_b3_buffer
btfsc H'0C',3 ; 0096: 198C ; 0x0C x
ass_3837_t ; 0097
delay.jal
.
.
.
.

PICture
04.12.2009, 17:59
Damit du deine Fragen selber beantworten kannst, würde ich dir einen Artikel in unserem Wiki empfehlen:

https://www.roboternetz.de/wissen/index.php/PIC_Assembler

Viel Spass beim Lesen und Erfolg beim Programmieren ! :)

MfG