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
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.
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
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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.