Pic18f1320 fährt nicht hoch

Gast
hier ist das restliches programm:
#define HIGH_uint(x) (unsigned char)  ((x)>>8)  //liefert High-Teil
#define LOW_uint(x)  (unsigned char)  (x)       //liefert Low-Teil
#pragma code
volatile long int p1=31622;
volatile long int p;
static long double r=5E-10;
volatile long int l;
volatile long int k,j,i,s;
short int f;
char z;
unsigned long int ps=500;

void hiserv(void);             // Prototyp Serviceprogramm
#pragma code einsprung=0x08    // Einsprungadresse
void einsprung (void)          // Hilfsfunktion für Sprung
{
 _asm GOTO hiserv _endasm      // Assembler: Sprung nach Servicefunktion
}
#pragma code             // System Codebereich
#pragma interrupt hiserv       // Kennwort interrupt veranlasst
void hiserv(void)              // Rücksprung aus Interrupt!!!
{
 p=p1*(1-r*p1*p1);
 p1=(long int)p;
 l=(long int)p1;
 k=(long int)(l/65535);
 s=(long int)(l%65535);
 if(z==0){LATB=0x05;}
 if(z==1){LATB=0x06;}
 if(z==2){LATB=0x0A;}
 if(z==3){LATB=0x09;}
 f=65535-s;
 if(z<4){z=z+1;}
 if(z==4){z=0;}
 TMR0H=HIGH_uint(f);
 TMR0L=LOW_uint(f);
 INTCONbits.TMR0IF = 0;      // Timer0 Anzeigeflag löschen
}
#pragma code                     // System Codebereich
void main(void)
{
 TRISB=0b11110000;
 ADCON1 = 0x7f;
 LATB=0x00;
 f=65535;
 TMR0H=HIGH_uint(f);
 TMR0L=LOW_uint(f);
 RCONbits.IPEN = 0;            // Interruptsteuerung nicht priorisiert
 INTCONbits.TMR0IF = 0;        // Timer0 Anzeigeflag löschen
 INTCONbits.TMR0IE = 1;        // Timer0 Interrupt freigeben
 INTCONbits.GIE = 1;           // Interrupts global freigeben

 while(1){
 T0CON = 0b10000010;        // Timer0 ein, 16bit,intern,x,Vorteiler,1:8
 while(INTCONbits.TMR0IF!=1);
  }
}
Gast
Hi

woran siehst du, dass der PIC nicht hochfährt ?

Als Oscillator hast du HS eingestellt, also einen schnellen Quarz. Hast 
du schon mal mit dem Oszi gemessen, ob der auch anschwingt ?

Gerhard
MCLR-Beschaltung und solche Kleinigkeiten prüfen. Zur Not mal mit dem 
internen Oszillator ausprobieren. Sicherstellen, das das Config-Word 
auch beim programmieren korrekt ist, falls du kein PicKit o.Ä. hast...
Gast
na ja die portb ausgänge sind ganze zeit auf low, ich habe das 
compileirte programm mit pic18 simulator ide laufen lassen. in der 
simulation kann man sehen, dass die interrups werden ausgelöst und portb 
tut nacheinander die bitkombinationen ausgeben. sobald ich den pic in 
schaltung stecke und mit strom versorge passiert gar nichts, hmm...
Servus,


also kondensator am pic an den Ub-Versorgungspinns? 
Quarzlastkondensatoren
wie im Datenblatt? und mit internen Oszie ohne PLL tuts? der hat keinen 
erweiterten Befehlssatz und die Debugsache ist im Config auch aus?



chek das alles mal ab!





servus
Gast
Hi

woran siehst du, dass der PIC nicht hochfährt ?

Ich wiederhole nochmal meine Frage. Funktioniert dein Prog nicht, oder 
läuft der PIC nicht ? Wenn der Quarz tut, und der PIC nicht im reset 
hängt kann er eignetlich nur noch laufen.

In solchen Situationen bau ich einen "Toggle" ein. ich mach ne Schleife 
ins Prog, die permanent und ausschliesslich abgearbeite wird und in der 
der irgend ein Ausgang abwechselnd high und low geschaltet wird. Das 
kontroll ich mit dem Oszi. Wenn das tut, kanns nur noch andeinem prog 
liegen...

Gerhard

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.