Forum: Mikrocontroller und Digitale Elektronik von Debug/ Release Mode


von Pic- gangster E. (Firma: FH) (ede84)


Lesenswert?

Hallo Zusammen,

ich habe ein Programm, das auch ganz wunderbar funktioniert.
Allerdings nur, wenn ich es auf meinen uC debugge. Es soll aber ständig 
laufen, auch wenn ich die Verbindung zwischen ICD2 und der Schnittstelle 
zum uC trenne....

Ich benutze MPLAB IDE v8.20, wenn ich von Debugger auf Programmer 
umschalte, und das Programm laufen lassen will, funktioniert aber 
garnix!

Ich habe Pin 10 von meinem 30F2020 als Osci- Ausgang deklariert und 
dabei gesehen, dass nicht mal der Osci ein Signal von sich gibt.....

Kann mir jemand sagen, wo ich den Fehler suchen soll?
Oder worauf ich beim Programmer allgemein achten muss?

Gruß
ede

von Severino R. (severino)


Lesenswert?

Du musst das Programm im Modus Release builden und mit dem ICD2 als 
Programmer programmieren. Dann ICD2 trennen oder "Release from Reset" 
(oder so ähnlich) wählen.

von ede (Gast)


Lesenswert?

jo, hab ich gemacht....ging nicht...aber trotzdem danke!

von Willivonbienemaya .. (willivonbienemaya)


Lesenswert?

Pic- gangster Edgar wrote:
> Ich habe Pin 10 von meinem 30F2020 als Osci- Ausgang deklariert und
> dabei gesehen, dass nicht mal der Osci ein Signal von sich gibt.....
>
> Kann mir jemand sagen, wo ich den Fehler suchen soll?

Das klingt irgendwie als ob du versuchst den Takt des internen 
Oszillators auszugeben.

Die Clock-Out-Funktion ist gedacht um ein Quarz am Controller zu 
betreiben.

Setze einen Pin am Anfang des Programms auf High. Dann kannst du 
kontrollieren ob der Controller anläuft und siehst auch ob er resettet 
(zB wenn der Watchdog an ist).

Ansonsten sind Probleme mit den Takt nahezu immer auf falsche Config 
Bits zurückzuführen.

Falls es nicht geht, poste mal die Config Bits.

von Pic- gangster E. (Firma: FH) (ede84)


Lesenswert?

Hallo,

also das mit dem Release-Mode geht jetzt...so einiger maßen...

ich hab jetzt folgendes:
im Debug-Mode läuft das Programm einwand frei...
aber im Release-Mode tut er irgendwie folgende Zeile ignorieren:

********************************
int uC-NS;

uC_NS = PORTBbits.RB1;
********************************

eigentlich wird in diesem Befehl ein Signal vom parallel-uC eingelesen..
('1' oder '0')....aber hier tut er so, als wäre immer eine '0' am 
Eingang....
wie gesagt, im Debug-Mode funktioniert es!

komisch komisch....

vll liegt es ja an diesem 'PORT'- Befehl?

bin für jeden Tipp dankbar!!!

Gruß
ede

von Willivonbienemaya .. (willivonbienemaya)


Lesenswert?

Pic- gangster Edgar wrote:
> also das mit dem Release-Mode geht jetzt...so einiger maßen...

An was hats gelegen?


> ********************************
> int uC-NS;
>
> uC_NS = PORTBbits.RB1;
> ********************************

uC-NS ist nicht dasselbe wie uC_NS

Ansonsten ist das schon richtig.
Woher weisst du im Release Modus ob das falsche eingelesen wurde?
Also wie testest du das?

von Pic- gangster E. (Firma: FH) (ede84)


Lesenswert?

hey Willi,

ne sorry, das war jetzt ein Tipfehler von mir....in meinem Programm sind 
die beiden Variablen natürlich identisch.

Ich weiß, das er immer nur eine '0' einliest, weil er immer nur im 
Tiefsetzsteller-Betrieb arbeitet, und nie in den Hochsetzsteller-Betrieb 
wechselt, egal was der andere uC gerade so treibt.

Ich vermute, das der Spannungspegel am Pin einfach nicht hoch genug ist.
Ich habe nämlich gerade das Programm umgeschrieben. Und mache jetzt an 
dem Pin eine A/D-Wandlung. Und siehe da, er schaltet wunderbar um.

Welche Spannung brauch ich den eigentlich, um eine '1' zu haben? 2,5V?

**********************
...
init_ADC();

if (ADCVALUE >= 512)
{

...
***********************

vorher hatte ich die Abfrage:

***********************
...
if (uC_NS == 0)
{
...
***********************


aber eine echte Lösung ist die A/D-Wandlung natürlich nicht, denn es 
geht bei mir ja um jede Nanosekunde.

Gruß
Edgar

von Willivonbienemaya .. (willivonbienemaya)


Lesenswert?

Pic- gangster Edgar wrote:
> Welche Spannung brauch ich den eigentlich, um eine '1' zu haben? 2,5V?

0,8 * Vdd

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.