mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik #asm und #endasm bleibt rot mit Hi-Tech C?


Autor: Excalibur (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen

Habe bis jetzt den OSCAL Wert immer mit asm Befehle herausgelesen.

Nun versuche ich mich mit dem HI-TECH-C Compiler.

Leider funktioniert nicht so richtig. Jemand einen Tipp?


#include <htc.h>

main()
{
#asm
  bsf STATUS, RP0   // Statusregister setze PR0 -> Auswahl Bank 1
  call 3FFh     // Aufrufen Kalibrierungswertes aus der letzten 
Speicherstelle
  movwf  OSCCAL   // Neuladen des Kalibrierungswertes für den internen 
Takt
  bcf  STATUS,  RP0   // Statusregister lösche PR0 -> Auswahl Bank 0
  clrf INTCON     // Abschalten aller Interrupts und löschen der Flags
#endasm
//Init

static bit bitvar;

TRISIO  = 0B11001000;   //GPIO3 Input GPIO5,4,2,1,0 Output
GPIO  = 0B00000000;  //GPIO off


    while(1)               //  Loop Forever
    {
    GPIO1 = 1;             //high GPIO1
    }
}

Denke könnte ein Compiler Problem sein, da #asm und #endasm rot wird...

Autor: Benjamin S. (recycler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
asm("nop");
oder

__asm("nop");

Wann dann schau in der Hilfe nach. Der Syntax kann abweichen.

Autor: Excalibur (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Benjamin


Beim obigen Code funktioniert das Debugging mit MPLABSIM nicht. d.h. der 
GPIO Wert wird nicht eigeschrieben.

Benötigt man für diesen Compiler das ICD2 auch fürs Debuggen mit MPLAB 
SIM?

Was mache ich falsch?

Habe nun mehrmals aktuellste Version von MPLAB und von HI-TECH C 
runtergeladen und installiert.

Benutze einen PIC 12F629

Mit Pic Basic Pro bin ich bis jetzt gut gefahren, aber um mich besser 
auf die Vordiplom Prüfung vorzubereiten muss ich C programmieren...


Bin dankbar um jeden Tipp...


Gruess

Autor: Benjamin S. (recycler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Excalibur,
ich habe mit dem Compiler leider noch nichts gemacht. Es war nur ein 
Vorschlag. Beim GCC gehts mit den obigen Befehlen. Wie gesagt, ich kenne 
den Compiler von dir nicht.

Aber weiterhin viel Erfolg.

Benjamin

Autor: mp (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Warum mit Assembler? Geht auch in C. Hat der 12F629 überhaupt ein 
OSCCAL? Ich meine bei einigen Typen gibts das nicht.

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.