Guten Tag, ich hab ein kleines Problem mit meinem Pickit 3. Hab ein programm geschrieben wo einfach nur ein paar Led´s angehen sollen und hab mich jetzt mit der konfig rum geschlagen. Kompeliert bekommt man das auch alles, übertragen scheint auch zu funktionieren nur laufen tut nix. Mir fällt solangsam nix mehr ein woran es liegen könnte einer von euch eine Idee! freu mich über jeden rat Programm: //-------- INCLUDE -------- #include <p18cxxx.h> #include "delays.h" //-------- PIC CONFIG -------- #pragma config WDTEN = OFF #pragma config FOSC = INTIO67 #pragma config LVP = OFF #pragma config LPT1OSC = OFF #pragma config PBADEN = OFF #pragma config STVREN = OFF #pragma config BOREN = OFF //-------- MAIN ROUTINE -------- void main(void) { TRISD = 0x00; while(1) { LATD = 0x00; LATD = 0xFF; } } Gruß Björn
Welcher PIC18 wird eingesetzt? Willst du debuggen oder hast du vor die LEDs mit einem Oszi abzugreifen? (Blinkfrequenz wird ziemlich hoch wenn du direkt hintereinander den Port setzt bzw. löscht)
Es ist der Pic18F45K20 verwendet. Würd mir schon reichen wenn ich das mit dem Oszi abgegriffen bekomme. Wäre froh wenn der Pic überhaupt mal was macht.
Ich glaub du musst genauer erklären was du machst und was du erwartest bzw. was nicht funktioniert. Auf den ersten Blick sehe ich jetzt keine schlimmen Fehler, der PORTD sollte auch laut Datenblatt ohne weiteres so nutzbar sein. Also, wie gehst du (der Reihe nach) vor? Wie sieht deine Hardware aus?
Nimm mal das LATD=0 wieder raus. Brennen die LEDs dann? Hat Dein PIC Versorgungsspannung? Gruß Thomas
Bjoern schrieb: > //-------- MAIN ROUTINE -------- > > void main(void) > { > TRISD = 0x00; > > > while(1) > { > > LATD = 0x00; > > LATD = 0xFF; > } > > > } > > Gruß Björn Servus, nimm unbedingt das LATD = 0x00; wieder raus - es bringt nix außer, dass du nur 50% duty-cycle am Pin hast. Unbedingt rausnehmen. Spannungsversorgung checken (direkt an den Pins messen). Was ist mit deinem MCLR? Hoffe der liegt auf Vdd (+5V bzw. 3.3V je nachdem). Wie hast du das gemacht? Alle GND und Vdd beschaltet? Noch eine kleine Sache - ich bin mal einen halben Tag vor meinem Programm gesessen und es lieft auch nix. Ich hatte den ICD2 (damals) dran - das Programm wollte einfach nicht loslaufen. MPLAB: Project -> Build Configuration bei mir war damals das Häckchen bei 'Debug'. Das musste aber bei 'Release' stehen, dann lief das Programm los. Viel Erfolg
Guten Morgen, Also hab gerade LATD = 0 wieder rausgenommen was an der situation nix ändert. Hab gerade das Oszi mal angeschmissen und nachgemessen. Versorgungsspannung liegt an. Das Pickit 3 versorgt Ihn mit 3.5 V. Am Pin MCLR liegen kurzfristig beim Pogrammieren ca. 8 V an. Wird auch direkt über das Pickit angesteuert, das geht direkt auf den pin 1 des Pickit und pin 1 soll laut anleitung VPP/MCLR sein. Mplap steht auch auf Release. Nach dem Programmieren bekomme ich auch die Meldung Programming... Programming/Verify complete. Nur anlaufen will das ganze nicht.
Ja sind sie, das ist ein Demoboard von Microchip was direkt dabei war. Am anfang war auch ein Demoprogramm von denen aufgespielt und dort Funktionierte alles. Müsste also Hardwaremässig alles okay sein. Scheint Irgendwie an der Software zu liegen bzw. eventuell an der Config oder MPLAP
Dann nimm doch mal das erste DEMO Programm Lesson1 von der mutgelieferten CD. Compilieren und programmieren... Da ist alles richtig eingestellt. Das lief bei mir sofort. Gruß Thomas
Hallo so jetzt hab ich das Programm der Lesson 1 ausprobiert. Habs rauskopiert und Compiliert und es geht auch nicht. Mir ist jetzt aufgefallen das ich beim linker script nur den 18f45k20.lkr auswählen kann und nicht wie gefordert den 18f45k20i.lkr ich weiß jetzt nicht ob es daran liegen kann. Ich weiß nicht was der unterschied ist ob mit oder ohne "i"
Hi ISt schlecht dokumentiert. Hat mich auch verwirrt. In der aktuellen Version vom C18 und dMPLAB braucht man KEIN Linkerscript mehr anzugeben. Das "i" war wohl für das Hardware Debuggen notwendig. Jetzt erzeugt MPLAB automatisch die richtigen Einstellungen. Also im Projekt NUR den C-Code eintragen. Kannst Du auch mal den Software MPLAB SIM Debugger laufen lassen. Dann siehst Du, das der Code funktioniert. Du kannst auch mal NUR die HexFiles brennen. Die müssen auch laufen. Gruß Thomas
TRISD = 0 muß drinbleiben, weil sonst der ensprechende Pin nicht auf Ausgang geschaltet wird. >#pragma config FOSC = INTIO67 Das bedeutet du benutzt den: OSC = INTIO67 INTRC-OSC2 as RA6, OSC1 as RA7 Na ob das defaultmäßig was wird? Ich schlage vor: //Oscillator Selection bits: #pragma config FOSC = HS Und probier mal die STVREN = OFF Stack overflow... kannste hier eigentlich weglassen. Ich empfehle dir das PIC18 CONFIGURATION SETTINGS ADDENDUM, in diesem Kochbuch sind die Configs alle schön aufgelistet. Hat mir in der gleichen Situation mit einem Olimex-Board weitergeholfen.
> Ich empfehle dir das PIC18 CONFIGURATION SETTINGS ADDENDUM, in diesem das gibt es nicht mehr als PDF, nur noch als Online-Help im MPLAB http://ww1.microchip.com/downloads/en/DeviceDoc/PIC18%20Config%20Settings%20Note.txt
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.
