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


von Excalibur (Gast)


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...

von Benjamin S. (recycler)


Lesenswert?

asm("nop");
oder

__asm("nop");

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

von Excalibur (Gast)


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

von Benjamin S. (recycler)


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

von mp (Gast)


Lesenswert?

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

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.