Code Ausführung funktioniert nicht

Gast #2318962
Lesenswert?

Hallo
Nachdem ich es endlich geschafft habe einen Schaltkreis für eine Led 
Sequenz aufzubauen, habe ich versucht den Code laufen zu lassen. Dieser 
funktioniert perfekt auf meinem DemoBoard (auf PORTD), nicht aber in 
meiner Schaltung. Hier bleibt die LED an RB4 auf on und auf RB3 blinkt 
es nicht. Die Schaltung habe ich mehrfach überprüfen lassen, daran liegt 
es nicht. Sie besteht aus +5V and beiden VDD und Ground an beiden VSS, 
dazwischen je ein Kondensator. MCLRE ist mit einem 10Ohm Kondensator an 
VDD, von RB0 - RB7 ist je eine LED mit 150k Widerstand daran. Die 
Spannung kommt von einem Spannungsgeber (5V).
Mein Code ist unten.
Woran könnte der Fehler liegen? Ich vermute stark dass sich der Quarz 
irgendwie aufhängt, wüsste aber nicht warum. Vielen Dank für jegliche 
Hilfe.
1
#include<p18f45k22.inc>
2

3
  CONFIG WDTEN = OFF    
4
  CONFIG MCLRE = INTMCLR  
5
  CONFIG DEBUG = OFF    
6
  CONFIG LVP = OFF     
7
  CONFIG FOSC = INTIO67 
8

9

10
Delay1 res 1
11
Delay2 res 1
12
Delay3 res 1
13

14
 org 0                  
15
  CLRF PORTB
16
  CLRF TRISB
17
  CLRF Delay1
18
  CLRF Delay2
19
  CLRF Delay3
20
  BSF PORTB, RB4
21

22
Loop
23
  DECFSZ Delay1, F
24
  GOTO Loop
25
  DCFSNZ Delay2, F
26
  BTG PORTB, RB3
27
  GOTO Loop
28
  end

Gruss
Patrick
Gast #2319056
Lesenswert?

spark schrieb:
> MCLRE ist mit einem 10Ohm Kondensator an

Ich hoffe du weißt schon das du da wirres Zeug geschrieben hast?!

Und das mit den 150k kannst du gleich vergessen ;).

Rechne mal den Strom aus den dann hättest...bei 5V und 150k hättest du 
einen Strom von knapp 33µA.
Ich geh mal davon aus das du ganz normale 20mA standart LEDs hast. Dann 
kannst du dir ja ganz einfach ausrechnen, das eine LED einen R von 250 
Ohm brauch!
#2319063
Lesenswert?

Ob am MCLR nun 10k dran ist oder 10R spielt an und fuer sich keine so 
grosse Rolle (mal so Geschichten wie Latchup etc. ausgeschlossen).
Aber der LED Strom....

Ich nutze diese Config
1
        CONFIG FOSC = INTIO67, PLLCFG = ON, PRICLKEN = ON
2
        CONFIG PWRTEN = OFF, BOREN = OFF, WDTEN = OFF, HFOFST = ON, PBADEN = OFF
3
        CONFIG CCP2MX = PORTB3, CCP3MX = PORTB5, P2BMX = PORTB5, T3CMX = PORTC0
4
        CONFIG MCLRE = EXTMCLR, LVP = OFF, DEBUG = OFF, XINST = OFF
5
        CONFIG CP1 = OFF, CPB = OFF, CP0 = OFF

Aussderdem musst du die ANSEL Register setzen (je nach Einstellung des 
PBADEN Bit).
Auch bei manchen Sachen des PIC das akutelle Errata beachten, der 
PIC18F45K22 hat da paar kleinere Bugs.

Sonst fuer PIC gerne www.fernando-heitor.de anschauen. :)
Gast #2319988
Lesenswert?

> deine Vermutng ist genauso unsinnig wie die Annahme, daß Außerirdische
> deine Schaltung per Fernwirkung sabotieren.


Dachte die Wahrscheinlichkeit dass etwas mit dem MCLRE oder mit dem 
Widerstand nicht stimmt und er dadurch dauernd resettet sei grösser, als 
das Ausserirdische meine Schaltung sabotieren würden...

Gibt es keine Entsprechung von PBADEN für PORTA? Warum werden hier die 
ANSEL Bits nicht gleich gesetzt wie bei den anderen Ports?
Gast #2320059
Lesenswert?

Noch ne Frage: Mir ist nicht klar wofür das output mux bit ist. Im 
Datasheet steht zwar was die Setzung von P2BMX bewirkt, auch dass der 
jetztige Wert falsch ist, ich möchte aber die Funktion dieses Bits 
verstehen.
Gast #2320413
Lesenswert?

Leider funktioniert der Code immer noch nicht
Was sind mögliche Fehlerquellen?
Der Code sieht jetzt so aus:
1
#include<p18f45k22.inc>
2

3
  CONFIG WDTEN = OFF    
4
  CONFIG MCLRE = INTMCLR  
5
  CONFIG DEBUG = OFF    
6
  CONFIG LVP = OFF     
7
  CONFIG FOSC = INTIO67 
8
  CONFIG PBADEN = OFF
9
  CONFIG PLLCFG = ON, PRICLKEN = ON
10
  CONFIG PWRTEN = OFF, BOREN = OFF, HFOFST = ON
11
  CONFIG CCP2MX = PORTB3, CCP3MX = PORTB5, P2BMX = PORTC0, T3CMX = PORTC0
12
  CONFIG XINST = OFF
13
  CONFIG CP1 = OFF, CPB = OFF, CP0 = OFF
14

15

16
Delay1 res 1
17
Delay2 res 1
18
Delay3 res 1
19

20
 org 0                  
21
  CLRF PORTB
22
  CLRF TRISB
23
  CLRF Delay1
24
  CLRF Delay2
25
  CLRF Delay3
26
  BSF PORTB, RB4
27

28
Loop:
29
  DECFSZ Delay1, F
30
  GOTO Loop
31
  DCFSNZ Delay2, F
32
  BTG PORTB, RB3
33
  GOTO Loop
34
 end

Allerdings bleibt nur die Lampe an RB4 stehen, RB3 blinkt nicht.
Bitte um Hilfe, ist zum Verzweifeln...
#2320530
Lesenswert?

>Gibt es keine Entsprechung von PBADEN für PORTA? Warum werden hier die
>ANSEL Bits nicht gleich gesetzt wie bei den anderen Ports?

Weils so ist und das Bit in der CONFIG PortB Analog Enable (oder so 
aehnlihc heissen soll).

>Noch ne Frage: Mir ist nicht klar wofür das output mux bit ist. Im
>Datasheet steht zwar was die Setzung von P2BMX bewirkt, auch dass der
>jetztige Wert falsch ist, ich möchte aber die Funktion dieses Bits
>verstehen.

Wenn es doch im Datenblatt steht, was ist nicht klar? Es legt fest wohin 
der Ausgang der CCP Module gelegt wird (die du aber gar nicht 
verwendest, daher der Wert nicht falsch sein kann).

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