Pic18 problem

Gast #2135950
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
Angehängte Dateien:
Gast #2135980
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?
#2136087
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
Gast #2136810
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.
Gast #2136906
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
Gast #2137072
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"
#2137163
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
Gast #2138610
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.

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