www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik von Debug/ Release Mode


Autor: Pic- gangster Edgar (Firma: FH) (ede84)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Severino R. (severino)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: ede (Gast)
Datum:

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

Autor: Willivonbienemaya .. (willivonbienemaya)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Pic- gangster Edgar (Firma: FH) (ede84)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Willivonbienemaya .. (willivonbienemaya)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Pic- gangster Edgar (Firma: FH) (ede84)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Willivonbienemaya .. (willivonbienemaya)
Datum:

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

0,8 * Vdd

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.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

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