Mülly
22.09.2005, 23:34
Hallo zusammen,
bin neu hier im Forum und gleichzeitig noch anfänger in der uC Welt.
Habe mir bei Elektro Con*** ein Experimentier Board von Vellmann besorgt und die Teile dran gelötet. Geht wunderbar. Habe mit dem C-Compiler von cc5x auch schon erste positive erfahrungen gesammelt.
Nun zum problem:
Ich möchte mich nun etwas vom experimentierboard entfernen. Habe mir also eine Lochrasterplatine gekauft, einen 18Pin Sockel, noch einen 16F627, etliche 10k Widerstände, paar taster, einen 4Mhz Quarz und paar 18pF Kondis.
Habe dann die 5V spannung an den Pin 14 (VDD),
die Masse an Pin 5 (VDD) ,
meinen kleinen Lüfter (testobjekt ;-)) an Pin 7 (RB0),
einen taster an pin 19 (RA0 gegen VDD) ,
einen 10k Ohm ebenfalls an pin 19 gegen VSS)
Pin 16 und 17 (CLKIN und CLKOUT) an den 4Mhz Quarz und jedes beinchen vom quarz per 18pF Kondi an GND geschlossen.
Dazu hab ich noch folgendes kleines Testprogramm geschrieben:
;************************************************* *************************
;* VELLEMAN High-Q KIT K8048/VM111 SAMPLE SOFTWARE *
;************************************************* *************************
;* Microchip PIC(tm) Programmer & experiment board *
;* DEMO2 program for testing K8048 with PIC16F627(A)! *
;* Generate 4 LED light effects, you can select these with SW1..4 *
;************************************************* *************************
;* (C) VELLEMAN Components,2003 All rights reserved *
;************************************************* *************************
;* Hardw. Rev: P8048'1 Softw. Rev: 1.21 *
;* OSC.......: XT 4MHz Max. POWER.....: 12V DC *
;************************************************* *************************
W EQU H'0000'
F EQU H'0001'
;----- Register Files------------------------------------------------------
INDF EQU H'0000'
TMR0 EQU H'0001'
PCL EQU H'0002'
STATUS EQU H'0003'
FSR EQU H'0004'
PORTA EQU H'0005'
PORTB EQU H'0006'
INTCON EQU H'000B'
OPTION_REG EQU H'0081'
TRISA EQU H'0085'
TRISB EQU H'0086'
CMCON EQU H'001F'
;----- STATUS Bits --------------------------------------------------------
IRP EQU H'0007'
RP1 EQU H'0006'
RP0 EQU H'0005'
NOT_TO EQU H'0004'
NOT_PD EQU H'0003'
Z EQU H'0002'
DC EQU H'0001'
C EQU H'0000'
;================================================= =========================
;
; RAM Definition
;
;================================================= =========================
__MAXRAM H'01FF'
__BADRAM H'07'-H'09', H'0D', H'13'-H'14', H'1B'-H'1E'
__BADRAM H'87'-H'89', H'8D', H'8F'-H'91', H'93'-H'97', H'9E'
__BADRAM H'105', H'107'-H'109', H'10C'-H'11F', H'150'-H'16F'
__BADRAM H'185', H'187'-H'189', H'18C'-H'1EF'
;================================================= =========================
;
; Configuration Bits
;
;================================================= =========================
_BODEN_ON EQU H'3FFF'
_BODEN_OFF EQU H'3FBF'
_CP_ALL EQU H'03FF'
_CP_75 EQU H'17FF'
_CP_50 EQU H'2BFF'
_CP_OFF EQU H'3FFF'
_DATA_CP_ON EQU H'3EFF'
_DATA_CP_OFF EQU H'3FFF'
_PWRTE_OFF EQU H'3FFF'
_PWRTE_ON EQU H'3FF7'
_WDT_ON EQU H'3FFF'
_WDT_OFF EQU H'3FFB'
_LVP_ON EQU H'3FFF'
_LVP_OFF EQU H'3F7F'
_MCLRE_ON EQU H'3FFF'
_MCLRE_OFF EQU H'3FDF'
_ER_OSC_CLKOUT EQU H'3FFF'
_ER_OSC_NOCLKOUT EQU H'3FFE'
_INTRC_OSC_CLKOUT EQU H'3FFD'
_INTRC_OSC_NOCLKOUT EQU H'3FFC'
_EXTCLK_OSC EQU H'3FEF'
_LP_OSC EQU H'3FEC'
_XT_OSC EQU H'3FED'
_HS_OSC EQU H'3FEE'
__CONFIG _BODEN_ON & _CP_OFF & _DATA_CP_OFF & _PWRTE_ON & _WDT_OFF & _LVP_OFF & _MCLRE_ON & _XT_OSC
processor 16F627
radix DEC
TRISA EQU 0x85
TRISB EQU 0x86
RP0 EQU 5
RP1 EQU 6
OPTION_REG EQU 0x81
CMCON EQU 0x1F
RA0 EQU 0
RB0 EQU 0
RB1 EQU 1
RB2 EQU 2
RB3 EQU 3
RB4 EQU 4
RB5 EQU 5
GOTO main
; FILE eigen.c
;//Prozessor 16F627
;
;
;#include <C:\cc5\16F627.h>
;
;
;void main(void) // Start des Hauptprogramms
;{
main
;OPTION_REG = 0b.1101.0111;
MOVLW .215
BSF 0x03,RP0
BCF 0x03,RP1
MOVWF OPTION_REG
;CMCON = 0b.0000.0111;
MOVLW .7
BCF 0x03,RP0
MOVWF CMCON
;
;TRISA = 0b.0000.0001; // Alle Pins des Ports A sind Ausgänge außer RA0
MOVLW .1
BSF 0x03,RP0
MOVWF TRISA
;TRISB = 0b.0000.0000; // Alle Pins des Ports B sind Ausgänge
CLRF TRISB
;Sprungmarke:
;
;if (RA0==1)
m001 BCF 0x03,RP0
BCF 0x03,RP1
BTFSS 0x05,RA0
GOTO m002
;{
;RB0 = 1;
BSF 0x06,RB0
;RB1 = 1;
BSF 0x06,RB1
;RB2 = 1;
BSF 0x06,RB2
;RB3 = 1;
BSF 0x06,RB3
;RB4 = 1;
BSF 0x06,RB4
;RB5 = 1;
BSF 0x06,RB5
;}
;else
GOTO m003
;{
;RB0 = 0;
m002 BCF 0x03,RP0
BCF 0x03,RP1
BCF 0x06,RB0
;RB1 = 0;
BCF 0x06,RB1
;RB2 = 0;
BCF 0x06,RB2
;RB3 = 0;
BCF 0x06,RB3
;RB4 = 0;
BCF 0x06,RB4
;RB5 = 0;
BCF 0x06,RB5
;}
;
;
;
;goto Sprungmarke; // Endlosschleife
m003 GOTO m001
END
Nun kam der Test......und was passierte?.......NIX!
Verstehe es einfach nicht! Der schalter schaltet die 5v beim drücken ordnungsgemäß durch, aber der lüfter dreht nicht! Hab den ausgang auch mal nachgemessen.... keine spannung!!
An meinem Experimentierboard klappts..also ist der code nicht falsch.
Kann mir jemand helfen? hab keine ahnung woran es liegt
Danke schonmal im vorraus
Mülly
bin neu hier im Forum und gleichzeitig noch anfänger in der uC Welt.
Habe mir bei Elektro Con*** ein Experimentier Board von Vellmann besorgt und die Teile dran gelötet. Geht wunderbar. Habe mit dem C-Compiler von cc5x auch schon erste positive erfahrungen gesammelt.
Nun zum problem:
Ich möchte mich nun etwas vom experimentierboard entfernen. Habe mir also eine Lochrasterplatine gekauft, einen 18Pin Sockel, noch einen 16F627, etliche 10k Widerstände, paar taster, einen 4Mhz Quarz und paar 18pF Kondis.
Habe dann die 5V spannung an den Pin 14 (VDD),
die Masse an Pin 5 (VDD) ,
meinen kleinen Lüfter (testobjekt ;-)) an Pin 7 (RB0),
einen taster an pin 19 (RA0 gegen VDD) ,
einen 10k Ohm ebenfalls an pin 19 gegen VSS)
Pin 16 und 17 (CLKIN und CLKOUT) an den 4Mhz Quarz und jedes beinchen vom quarz per 18pF Kondi an GND geschlossen.
Dazu hab ich noch folgendes kleines Testprogramm geschrieben:
;************************************************* *************************
;* VELLEMAN High-Q KIT K8048/VM111 SAMPLE SOFTWARE *
;************************************************* *************************
;* Microchip PIC(tm) Programmer & experiment board *
;* DEMO2 program for testing K8048 with PIC16F627(A)! *
;* Generate 4 LED light effects, you can select these with SW1..4 *
;************************************************* *************************
;* (C) VELLEMAN Components,2003 All rights reserved *
;************************************************* *************************
;* Hardw. Rev: P8048'1 Softw. Rev: 1.21 *
;* OSC.......: XT 4MHz Max. POWER.....: 12V DC *
;************************************************* *************************
W EQU H'0000'
F EQU H'0001'
;----- Register Files------------------------------------------------------
INDF EQU H'0000'
TMR0 EQU H'0001'
PCL EQU H'0002'
STATUS EQU H'0003'
FSR EQU H'0004'
PORTA EQU H'0005'
PORTB EQU H'0006'
INTCON EQU H'000B'
OPTION_REG EQU H'0081'
TRISA EQU H'0085'
TRISB EQU H'0086'
CMCON EQU H'001F'
;----- STATUS Bits --------------------------------------------------------
IRP EQU H'0007'
RP1 EQU H'0006'
RP0 EQU H'0005'
NOT_TO EQU H'0004'
NOT_PD EQU H'0003'
Z EQU H'0002'
DC EQU H'0001'
C EQU H'0000'
;================================================= =========================
;
; RAM Definition
;
;================================================= =========================
__MAXRAM H'01FF'
__BADRAM H'07'-H'09', H'0D', H'13'-H'14', H'1B'-H'1E'
__BADRAM H'87'-H'89', H'8D', H'8F'-H'91', H'93'-H'97', H'9E'
__BADRAM H'105', H'107'-H'109', H'10C'-H'11F', H'150'-H'16F'
__BADRAM H'185', H'187'-H'189', H'18C'-H'1EF'
;================================================= =========================
;
; Configuration Bits
;
;================================================= =========================
_BODEN_ON EQU H'3FFF'
_BODEN_OFF EQU H'3FBF'
_CP_ALL EQU H'03FF'
_CP_75 EQU H'17FF'
_CP_50 EQU H'2BFF'
_CP_OFF EQU H'3FFF'
_DATA_CP_ON EQU H'3EFF'
_DATA_CP_OFF EQU H'3FFF'
_PWRTE_OFF EQU H'3FFF'
_PWRTE_ON EQU H'3FF7'
_WDT_ON EQU H'3FFF'
_WDT_OFF EQU H'3FFB'
_LVP_ON EQU H'3FFF'
_LVP_OFF EQU H'3F7F'
_MCLRE_ON EQU H'3FFF'
_MCLRE_OFF EQU H'3FDF'
_ER_OSC_CLKOUT EQU H'3FFF'
_ER_OSC_NOCLKOUT EQU H'3FFE'
_INTRC_OSC_CLKOUT EQU H'3FFD'
_INTRC_OSC_NOCLKOUT EQU H'3FFC'
_EXTCLK_OSC EQU H'3FEF'
_LP_OSC EQU H'3FEC'
_XT_OSC EQU H'3FED'
_HS_OSC EQU H'3FEE'
__CONFIG _BODEN_ON & _CP_OFF & _DATA_CP_OFF & _PWRTE_ON & _WDT_OFF & _LVP_OFF & _MCLRE_ON & _XT_OSC
processor 16F627
radix DEC
TRISA EQU 0x85
TRISB EQU 0x86
RP0 EQU 5
RP1 EQU 6
OPTION_REG EQU 0x81
CMCON EQU 0x1F
RA0 EQU 0
RB0 EQU 0
RB1 EQU 1
RB2 EQU 2
RB3 EQU 3
RB4 EQU 4
RB5 EQU 5
GOTO main
; FILE eigen.c
;//Prozessor 16F627
;
;
;#include <C:\cc5\16F627.h>
;
;
;void main(void) // Start des Hauptprogramms
;{
main
;OPTION_REG = 0b.1101.0111;
MOVLW .215
BSF 0x03,RP0
BCF 0x03,RP1
MOVWF OPTION_REG
;CMCON = 0b.0000.0111;
MOVLW .7
BCF 0x03,RP0
MOVWF CMCON
;
;TRISA = 0b.0000.0001; // Alle Pins des Ports A sind Ausgänge außer RA0
MOVLW .1
BSF 0x03,RP0
MOVWF TRISA
;TRISB = 0b.0000.0000; // Alle Pins des Ports B sind Ausgänge
CLRF TRISB
;Sprungmarke:
;
;if (RA0==1)
m001 BCF 0x03,RP0
BCF 0x03,RP1
BTFSS 0x05,RA0
GOTO m002
;{
;RB0 = 1;
BSF 0x06,RB0
;RB1 = 1;
BSF 0x06,RB1
;RB2 = 1;
BSF 0x06,RB2
;RB3 = 1;
BSF 0x06,RB3
;RB4 = 1;
BSF 0x06,RB4
;RB5 = 1;
BSF 0x06,RB5
;}
;else
GOTO m003
;{
;RB0 = 0;
m002 BCF 0x03,RP0
BCF 0x03,RP1
BCF 0x06,RB0
;RB1 = 0;
BCF 0x06,RB1
;RB2 = 0;
BCF 0x06,RB2
;RB3 = 0;
BCF 0x06,RB3
;RB4 = 0;
BCF 0x06,RB4
;RB5 = 0;
BCF 0x06,RB5
;}
;
;
;
;goto Sprungmarke; // Endlosschleife
m003 GOTO m001
END
Nun kam der Test......und was passierte?.......NIX!
Verstehe es einfach nicht! Der schalter schaltet die 5v beim drücken ordnungsgemäß durch, aber der lüfter dreht nicht! Hab den ausgang auch mal nachgemessen.... keine spannung!!
An meinem Experimentierboard klappts..also ist der code nicht falsch.
Kann mir jemand helfen? hab keine ahnung woran es liegt
Danke schonmal im vorraus
Mülly