Startschwierigkeiten mit C-Compiler

OP #3472519
Lesenswert?

Hi
Ich habe ich habe versucht einen PIC mal mit C zu Programmieren. Dabei 
trat allerdings das Problem auf, dass ein Eingang immer "0" ausgibt.

Die Hardware, die ich benutze ist die Versuchsplatine aus dem Buch 
"Mikrocontroller für Einsteiger", auf der ein PIC 16F876A ist. Das ganze 
möchte ich nun mit C programmieren, da es für mich wesentlich einfacher 
ist als Assembler neu zu lernen.
Als Compiler nutze ich den von HI-TECH (lite Version).

Hier der Code ...
1
#include  <htc.h>
2
#include  <pic16f876a.h>
3

4
#ifndef _XTAL_FREQ
5
 #define _XTAL_FREQ 4000000
6
#endif
7

8
__CONFIG(CP_OFF & WDTE_OFF & BOREN_OFF & PWRTE_OFF & FOSC_XT & WRT_OFF & LVP_OFF & DEBUG_OFF & CPD_OFF);
9

10
#define T1 PORTAbits.RA4
11
#define T2 PORTAbits.RA5
12
#define T3 PORTCbits.RC0
13
#define T4 PORTCbits.RC1
14

15
#define LED1 PORTAbits.RA2
16
#define LED2 PORTAbits.RA3
17
#define LED3 PORTBbits.RB4
18
#define LED4 PORTBbits.RB5
19

20
main(void){
21
  PORTA = 0x00;
22
  PORTB = 0x00;
23
  PORTC = 0x00;  
24

25
  TRISAbits.TRISA4 = 1;
26
  TRISAbits.TRISA5 = 1;
27
  TRISCbits.TRISC0 = 1;
28
  TRISCbits.TRISC1 = 1;
29

30
  TRISAbits.TRISA2 = 0;
31
  TRISAbits.TRISA3 = 0;
32
  TRISBbits.TRISB4 = 0;
33
  TRISBbits.TRISB5 = 0;
34

35
  while(1){
36
    
37
    LED1 = !T1;
38
    LED2 = !T2;
39
    LED3 = !T3;
40
    LED4 = !T4;
41
  }
42
}

Das Programm, welches eigentlich nur Eingänge auf Ausgänge schaltet 
funktioniert soweit, außer das die LED2 dauerhaft leuchtet und somit T2 
vermutlich immer 0 ausgibt.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren