Forum: Mikrocontroller und Digitale Elektronik [PIC]24FV32KA302 RB4 funktioniert nicht.


von Max H. (hartl192)


Lesenswert?

Ich habe ein kurzes Testprogramm für den PIC24FV32KA302 geschrieben. 
Alle LEDs an PROTB blinken außer die an RB4. Die Platine ist ok, der PIC 
dürfte nicht kaputt sein, da zwei neue das gleich Problem habe.
Im DB steht zum PIN 11: SOSCI/AN15/U2RTS/CN1/RB4
Den sekundären Oszillator habe ich deaktiviert.
Die Analogfunktionen habe ich alle deaktiviert.
U2RTS sollte nicht das Problem sein, da RB9 (U1RTS) keine Probleme 
macht.


Quellcode:
1
    .equ  __24FV32KA302, 1
2
    .include  "p24FV32KA302.inc"
3
  config   __FBS, BWRP_OFF            ;Boot segment may be written
4
  config  __FGS, GWRP_OFF & GSS0_OFF         ;General segment may be written, No Protection
5
  config  __FOSCSEL, FNOSC_PRIPLL & IESO_OFF   ;Primary oscillator with PLL module (HS+PLL, EC+PLL) & Internal External Switchover mode disabled
6
  config  __FOSC, POSCMOD_HS               ;HS oscillator mode selected
7
  config  __FWDT, FWDTEN_OFF          ;WDT disabled (control is placed on the SWDTEN bit)
8
9
10
.global  __reset  
11
.text
12
__reset:
13
  ;stack pointer init
14
  mov   #__SP_init,w15
15
  mov   #__SPLIM_init,W0
16
  mov   W0,_SPLIM
17
  
18
  mov  #0x00FF, w0
19
  mov  w0,TRISA      ;set PORTA<0:7> as digital input
20
  mov  #0x0000, w0
21
  mov  w0,TRISB      ;set PORTB<0:15> as digital output
22
  mov #0x0000,w0
23
  mov w0,LATB
24
  clr ANSA        ;All inputs on PORTA digital
25
  clr ANSB        ;All inputs on PORTB digital
26
  
27
  
28
  bclr OSCCON,#SOSCEN    ;Disables the secondary oscillator
29
  
30
  ;T1 init
31
  bclr T1CON,#TCS      ;Internal clock (FOSC/2)
32
  bset T1CON,#TCKPS1    
33
  bset T1CON,#TCKPS0    ;Prescaler 1:256
34
  bset T1CON,#TON      ;Starts 16-bit Timer1
35
  mov #31249,w0      
36
  mov w0,PR1        ;Peiod
37
  ;Init interrupt
38
  bclr SR,#IPL2
39
  bclr SR,#IPL2
40
  bclr SR,#IPL2      ;CPU interrupt priority level is 0
41
  bset IPC0,#T1IP2
42
  bset IPC0,#T1IP1
43
  bset IPC0,#T1IP0    ;Interrupt is Priority 7 (highest priority interrupt)
44
  bclr IFS0,#T1IF      ;Clear T1 interrupt flag
45
  bset IEC0,#T1IE      ;Enable T1 Interrupt
46
  
47
  bra $
48
49
  .global __T1Interrupt
50
  __T1Interrupt:
51
  bclr IFS0,#T1IF ; clear the interrupt flag
52
  com LATB
53
  retfie
54
  
55
.end

Gruß
Max


Edit:

Problem gelöst:
"bclr OSCCON,#SOSCEN" deaktiviert den sekundären Oszillator zu wenig. 
Man muss ihn mit den config-bits "SOSCSRC" im Word "FOSCSEL" 
deaktivieren.

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.