Forum: Mikrocontroller und Digitale Elektronik Pic18 problem


von Bjoern (Gast)


Angehängte Dateien:

Lesenswert?

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

von Loonix (Gast)


Lesenswert?

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)

von Bjoern (Gast)


Lesenswert?

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.

von Loonix (Gast)


Lesenswert?

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?

von Thomas W. (thomas0906)


Lesenswert?

Nimm mal das LATD=0 wieder raus.
Brennen die LEDs dann?

Hat Dein PIC Versorgungsspannung?

Gruß
Thomas

von Lehrmann M. (ubimbo)


Lesenswert?

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

von Bjoern (Gast)


Lesenswert?

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.

von Diotor (Gast)


Lesenswert?

Das Programm sieht ok aus,
wie sind die LEDs richtig rum angeschlossen?

von Bjoern (Gast)


Lesenswert?

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

von Thomas W. (thomas0906)


Lesenswert?

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

von Bjoern (Gast)


Lesenswert?

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"

von Thomas W. (thomas0906)


Lesenswert?

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

von Joachim (Gast)


Lesenswert?

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.

von tt4u (Gast)


Lesenswert?

> 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

von Joachim (Gast)


Lesenswert?

Stimmt das gibt's nimmer, mein PDF ist von 2006.

---

Und? Wa is nu? Geht der PIC jetzt?

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.