Hallo miteinander
ich stehe mal wieder tierisch im mist, denn ich kriege einfach ein
kleines Programm auf einem PIC nicht zum laufen.
Hier ist das c-File für den 16F874A mit externem 20MHz Quarz:
1 | #include "C:\Daten\PIC_Prog\programme\versuch 1\main.h"
|
2 | #include <stdio.h>
|
3 |
|
4 | void SysInit(void){
|
5 | setup_adc_ports(NO_ANALOGS);
|
6 | setup_adc(ADC_OFF);
|
7 | setup_psp(PSP_DISABLED);
|
8 | setup_spi(SPI_SS_DISABLED);
|
9 | setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
|
10 | setup_timer_1(T1_DISABLED);
|
11 | setup_timer_2(T2_DISABLED,0,1);
|
12 | setup_comparator(NC_NC_NC_NC);
|
13 | setup_vref(FALSE);
|
14 |
|
15 | Set_Tris_B(0xFF);
|
16 | Set_Tris_D(0x00);
|
17 | }
|
18 |
|
19 | void main(){
|
20 | SysInit();
|
21 | for(;;){
|
22 | OUTPUT_D(0xFF);
|
23 | }
|
24 | }
|
und hier ist das Projekt H-File:
1 | #include <16F874A.h>
|
2 | #device adc=8
|
3 |
|
4 | #FUSES HS
|
5 | #FUSES NOWDT //No Watch Dog Timer
|
6 | #FUSES RC //Resistor/Capacitor Osc with CLKOUT
|
7 | #FUSES NOPUT //No Power Up Timer
|
8 | #FUSES NOPROTECT //Code not protected from reading
|
9 | #FUSES NODEBUG //No Debug mode for ICD
|
10 | #FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
|
11 | #FUSES NOCPD //No EE protection
|
12 | #FUSES WRT_50% //Lower half of Program Memory is Write Protected
|
13 | #FUSES NOBROWNOUT //No brownout reset
|
14 |
|
15 | #use delay(clock=20000000)
|
16 | #use rs232(baud=19200,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)
|
17 |
|
18 | #Byte PORTA = 0x05
|
19 | #Byte PORTB = 0x06
|
20 | #Byte PORTC = 0x07
|
21 | #Byte PORTD = 0x08
|
22 | #Byte PORTE = 0x09
|
23 |
|
24 | #Bit LED0 = PORTD.0
|
25 | #Bit LED1 = PORTD.1
|
26 | #Bit LED2 = PORTD.2
|
27 | #Bit LED3 = PORTD.3
|
28 | #Bit LED4 = PORTD.4
|
29 | #Bit LED5 = PORTD.5
|
30 | #Bit LED6 = PORTD.6
|
31 | #Bit LED7 = PORTD.7
|
32 | #Bit TASTE0 = PORTB.0
|
33 | #Bit TASTE1 = PORTB.1
|
34 | #Bit TASTE2 = PORTB.2
|
35 | #Bit TASTE3 = PORTB.3
|
36 | #Bit TASTE4 = PORTB.4
|
37 | #Bit TASTE5 = PORTB.5
|
38 | #Bit TASTE6 = PORTB.6
|
39 | #Bit TASTE7 = PORTB.7
|
Das Programm sollte einfach nur ein par LED's einschalten, aber nicht
einmal der Quarz schwingt. Ich weiss echt nicht mehr weiter.
Als Compiler verwende ich nen ccs pcwhd oder so ähnlich.
Bis jetzt habe ich nur Atmel Prozessoren Programmiert, und da fällt mir
von Anfang her gleich einen riesen Unterschied auf: Die AVR's lassen
sich auch Registerweise Programmieren, da ja in den H-Files alles schön
definiert ist, aber bei den PIC's ist alles irgendwie über Funktionen
versteckt, irgendwie etwas unschön, oder mache ich etwas falsch?
Danke für eure Hilfe
P51D