Forum: Mikrocontroller und Digitale Elektronik PIC16F690 läuft nicht


von Horst Hans (Gast)


Angehängte Dateien:

Lesenswert?

Hallo ich habe gerade echt ein Problem wo ich nicht weiterkomme.

Ich habe für meine Steuerung einen PIC16F690 eingesetzt. Ich möchte den 
Internen Oszillator verwenden, da ich nicht auf genaue Timings 
angewiesen bin.

Jetzt habe ich erstmal das Config.-Word eingefügt, die ANSEL-Register 
auf null gesetzt (alle I/Os digital), TRIS-Register und OSCCON gesetzt.

Watchdog und der ganze andere Schnickschnack ist ausgeschaltet.

Zum Testen habe ich dann mal verschiedene Ausgänge mit je einem LED dran 
auf 1 gesetzt, aber es passiert nie etwas. Speisung habe ich gemessen, 
sind stabile 5V. Kondensator 100nF ist auch drübergehängt.

Programmieren über ICSP klappt auch, nur zeigt er keinerlei 
"Lebenszeichen", sprich, ich kann keine Ausgänge auf 1 schalten.

Habe eigentlich in MPLABX eingestellt, dass MCLR als I/O verwendet 
werden kann.
Widerstand über MCLR habe ich aber auch schon auf Vcc gehängt, hat nix 
geändert.

Die FOSC Einstellung in den Config-Bits habe ich auf INTRCIO. Ist das 
Richitg?

Bin gerade ziemlich hilflos, früher habe ich das auch noch hinbekommen. 
Hat jemand eine Ahnung, an was das liegen kann? Wäre sehr sehr dankbar.

Im Anhang ist noch das C-File, vielleicht findet ja jemand einen Fehler.

Liebe Grüsse
Horst

von Peter S. (gynaekologe18)


Lesenswert?

Horst Hans schrieb:
> vielleicht findet ja jemand einen Fehler.

Versuch mal mikroC von mikroElektronika.
http://www.mikroe.com/mikroc/pic/
oder Basic:
http://www.mikroe.com/mikrobasic/pic/
Da kannst du DEIN Programm via Einzelschritt durchsteppen (aka debuggen) 
und parallel dazu deine Variablen beobachten. So machen das alle, wenn 
ein Programm nicht das tut, was es soll. Vielleicht kommst du damit 
besser zurecht.

Stell dir vor, das Internet existiert nicht und du müßtest dir das alles 
selbst erarbeiten.

Du kannst natürlich hier weiter fragen, falls du auch damit nicht 
zurechtkommst bzw. es dich überfordert.

von Max H. (hartl192)


Angehängte Dateien:

Lesenswert?

Peter Sander schrieb:
> Versuch mal mikroC von mikroElektronika.
> http://www.mikroe.com/mikroc/pic/
> oder Basic:
> http://www.mikroe.com/mikrobasic/pic/
> Da kannst du DEIN Programm via Einzelschritt durchsteppen (aka debuggen)
> und parallel dazu deine Variablen beobachten.
Das geht in C im MPLAB X genauso gut,... Direkt in der Schaltung oder 
auch als Simulation.

Und ein einfacher Blick (siehe Anhang) ins Datenblatt hätte viel mehr 
als jeder Debugger dieser Welt gebracht...

Dein PIC hat keinen PORTB<3:0>. Wo hast du die LEDs, die du mit 
PORTB<3:0> ansteuern willst eigentlich angeschlossen?

: Bearbeitet durch User
von Horst Hans (Gast)


Lesenswert?

Danke für die Antworten.

Max. H. :
Da hast du natürlich Recht, Die Ausgabe auf PORTB ist nicht sinnvoll.

Aber das ist nicht das Problem. Wenn du die Definitionen für die LEDs im 
Code anschaust, siehst du, dass ich keine LEDs an PORTB <3:0> habe, 
sondern erst ab Bit 4.

Ich habe auch schon andere Bits auf anderen PORTs versucht, klappt 
nicht.

LG

von Max H. (hartl192)


Lesenswert?

Horst Hans schrieb:
> Wenn du die Definitionen für die LEDs im
> Code anschaust, siehst du, dass ich keine LEDs an PORTB <3:0> habe
Der Rest des Codes sagt aber was anderes:
> TRISB=0b11110001;
PORTB<3:1> als Ausgang
> PORTB=0b00001110;
PORTB<3:1> auf '1'

Versuch mal die Defines so zu schreiben:
1
#define LED0 PORTBbits.RB6
2
...
3
#define LED7 PORTCbits.RC4

: Bearbeitet durch User
von Horst Hans (Gast)


Lesenswert?

Unglaublich, ich habe tatsächlich die TRIS-Register von der falschen 
Seite her gesetzt... da muss ich komplett abwesend gewesen sein, als ich 
das geschrieben habe.

Sorry für den unnötigen Post und trotzdem vielen Dank!!

Lg

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.