Pic 18f4525 läuft nicht

Gast #5665017
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.
1
/*
2
 * Includes
3
 */
4
#include <xc.h>
5
#include <pic18f4525.h>
6
#include <stdint.h>
7
/*
8
 * Defines
9
 */
10
#define _XTAL_FREQ 10000000 //Define uc frequency for _delay functions (10MHz)
11
//#pragma config OSC = HS         // Oscillator Selection bits (HS oscillator)
12
#pragma config OSC = INTIO67    // Oscillator Selection bits (Internal oscillator block, port function on RA6 and RA7)
13

14
#pragma config WDT = OFF         // Watchdog Timer Enable bit
15
#pragma config PWRT = OFF
16
#pragma config BOREN = OFF
17

18
void main(void) {
19
       LATCbits.LATC6 = 0x0;
20
       TRISCbits.TRISC6 = 0x0;  
21
    
22
       while (1) {
23
           LATCbits.LATC6 = ~LATCbits.LATC6 ;
24
           __delay_ms(1000);        
25
       } 
26
    return;
27
}

Vermutlich ist es irgend ein kleiner, dummer Fehler. Aber ich finde ihn 
gerade nicht....
Gast #5665057
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?
Gast #5665562
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.
#5666562
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 
https://www.youtube.com/watch?v=33kgfbL3Sr0
#5666835
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.
Angehängte Dateien:

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