mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Pic 18f4525 läuft nicht


Autor: Kevin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Leute,

Ich habe im moment die Aufgabe ein Programm für einen PIC 18f4525 zu 
schreiben. Da ich bisher nur mit AVRs und Arduinos gearbeitet habe ist 
das etwas ungewohnt.

Das Problem was ich im Moment habe ist, dass ich den Controller zwar 
angeblich flashen kann (mit MPLABX und einem ICD3), der aber scheinbar 
garnichts macht. Zum Testen habe ich mal ein Minimalprogramm geschrieben 
was nur einen Pin toggeln soll.

Gibt es da irgendeine Falle an die ich nicht gedacht haben könnte, ist 
an meinem Code irgendwas falsch, oder gibt es noch etwas spezielles auf 
das ich achten muss?
Spannungsversorgung habe ich bereits kontrolliert. Umstellung von 
externen Quarz auf den internen habe ich auch schon versucht. Auch mit 
den anderen Portregistern hatte ich kein Glück.
/*
 * Includes
 */
#include <xc.h>
#include <pic18f4525.h>
#include <stdint.h>
/*
 * Defines
 */
#define _XTAL_FREQ 10000000 //Define uc frequency for _delay functions (10MHz)
//#pragma config OSC = HS         // Oscillator Selection bits (HS oscillator)
#pragma config OSC = INTIO67    // Oscillator Selection bits (Internal oscillator block, port function on RA6 and RA7)

#pragma config WDT = OFF         // Watchdog Timer Enable bit
#pragma config PWRT = OFF
#pragma config BOREN = OFF

void main(void) {
       LATCbits.LATC6 = 0x0;
       TRISCbits.TRISC6 = 0x0;  
    
       while (1) {
           LATCbits.LATC6 = ~LATCbits.LATC6 ;
           __delay_ms(1000);        
       } 
    return;
}

Vermutlich ist es irgend ein kleiner, dummer Fehler. Aber ich finde ihn 
gerade nicht....

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schaltplan ?

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Spannung am Reset Pin?

Autor: Toxic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
1.
Zeile "#include <pic18f4525.h>" ist normalerweise nicht notwendig - 
dafuer ist xc.h alleine zustaendig

2.Checke ob LVP(Low Voltage Programming) = "on" oder "off" sein muss

Autor: Rest (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast du mal den Programmer abgesteckt bzw. mit Programmer dran probiert? 
Der Klassiker, wenn man am Reset-Eingang nichts oder was falsches tut. 
Wie ist die Spannung am Reset-Eingang? Externer Pullup? Schaltplan?

Autor: Kevin (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Sorry, hatte vergessen den mit dran zu hängen

Autor: HyperMario (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kevin schrieb:
> der aber scheinbar garnichts macht.

Klassisch ist das irgendwelche Komparatoren und A/D Wandler Ports nicht 
auf digital I/O gesetzt werden.

Dann würde ich noch prüfen ob das Programm wirklich drin ist (auslesen 
Checksumme vergleichen) und ob die "Fuse Bits" richtig gesetzt wurden.

Ob er läuft kann man auch an der Stromaufnahme (Reset/kein Reset) sehen.

Autor: Erich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Meiner Meinung nach ist an MCLR der C35 viel zu gross.
Setze den auf 1 nF, evtl. auch den R39 auf 1k vergrössern.

Gruss

Autor: Stefan (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo
Hier ein Testprogramm für deinen PIC.
LED an RC6 sollte blinken.
Wenn nicht dann stimmt was nicht
mit deiner Hardware.

Autor: Boris (Gast)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
ANSELC auf digital umstellen!

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da gibt es kein ANSEL Register.
DB lesen.

Autor: Teo D. (teoderix)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kevin schrieb:
> LATCbits.LATC6 = ~LATCbits.LATC6 ;

LATCbits.LATC6 = !LATCbits.LATC6 ;

Frag mich nich warum, "~" hat mir aber schon mal Probleme gemacht. Vor 
Jahren mal(XC8 ?.??).

Autor: Volker S. (vloki)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kevin schrieb:
> Das Problem was ich im Moment habe ist, dass ich den Controller zwar
> angeblich flashen kann (mit MPLABX und einem ICD3), der aber scheinbar
> garnichts macht.

Bleib doch einfach im Debug Modus, bis dein Programm fertig entwickelt 
ist. Da kannst du immer schauen, ob der Controller überhaupt läuft und 
was genau passiert!

Bei den Congfig Bits am besten immer gleich alle definieren. Geht auch 
ganz einfach: 
http://microchipdeveloper.com/mplabx:view-and-set-configuration-bits

Nettes PIC Einsteiger Webinar 
Youtube-Video "Flash, Damned LED! Flash I say!  An I/O Ports Webinar"

: Bearbeitet durch User
Autor: Kevin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stefan schrieb:
> LED an RC6 sollte blinken.

Hi Stefan,
dein Hex file läuft. An der Hardware liegt es also schonmal net.
Könntest du auch mal den Sourcecode posten? Dann kann man das mal 
vergleichen

Autor: Volker S. (vloki)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Kevin schrieb:
> Könntest du auch mal den Sourcecode posten?

Kann man auch einfach importieren und zumindest den Maschinencode 
anschauen.
(falls Stefan heute nicht mitließt ;-)

Lerne debuggen, ist im Endeffekt viel schneller!

<edit> Sorry, anscheinend habe ich die erste Datei test.txt aus Versehen 
überschrieben. Also nochmal test_code.txt.

: Bearbeitet durch User
Autor: dudley (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wie versorgst du deinen controller währens des flashens, bzw welchen 
programmer nutzt du?

Autor: Stefan (Gast)
Datum:

Bewertung
-2 lesenswert
nicht lesenswert
Benutze einen anderen Compiler.
Aber in C sollte es so aussehen.

void main() {

  TRISC6_bit = 0;

  do {
    LATC6_bit = 0x00;

    Delay_ms(1000);

    LATC6_bit = 0x01;

    Delay_ms(1000);

  } while(1);
}

Autor: jemand (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hau halt mal einen Breakpoint rein, und kuck, ob er ins main loop geht.
Du hast einen Debugger - nutze ihn...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.