- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 6 von 6

Thema: Assembler Probleme

  1. #1

    Assembler Probleme

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo miteinander

    Ich bin gerade an der Überarbeitung eines Programms für einen dsPIC30F6012A, und hierbei geht es um die optimierung der Geschwindigkeit.

    Aus diesem Grund möchte ich ein paar Funktionen die in C geschrieben sind umschreiben in Assembler.

    Leider ist diese Zeit schon etwas länger zurück, als ich mich ein wenig mit dieser Sprache beschäftigt hatte.

    Der Compiler (HI-Tech dsPIC/PC24 V9.60) mekert bei mir bei folgenden kleinen Teilen:
    Code:
    BCF PORTC,14
    BCF PORTC,13
    BCF PORTC,2
    BCF PORTC,1
    Hier sei ein Syntaxfehler. Nur welcher?

    Besten Dank für die Hilfe
    MFG
    P51D

  2. #2
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Wenn der Compiler meckert, dann soll das wohl Inline ASM werden. Dann braucht man da noch einiges um den eigentlichen ASM Code umd dem Compiler zu sagen was ASM ist, und was normaler C Code.
    Dazu kommt ggf. noch ein extra Zeilenumbruch, z.B. mit \n\t .

  3. #3
    mhm, laut manual ist nichts spezielles zu beachten:
    Diese 2 Möglichkeiten werden geboten:
    Code:
    unsigned int var;
    void main(void)
    {
    var = 1;
    #asm // like this...
    mov.w _var,w0
    sl.w w0,w0
    mov.w w0,_var
    #endasm
    // or like this
    asm("mov.w _var,w0");
    asm("sl.w w0,w0");
    asm("mov.w w0,_var");
    }
    aber dennoch, besten Dank für den Ratschlag.

    MFG
    P51D

  4. #4
    Erfahrener Benutzer Begeisterter Techniker Avatar von Andre_S
    Registriert seit
    26.06.2005
    Beiträge
    357
    Hallo P51D,

    hast Du mal nachgeschaut ob Dein PIC den Assemblerbefehl "BCF..." überhaupt kennt.
    Hatte mir die 24er nur mal kurz für ein Projekt angeschaut, aber da war was mit BCLR um Bit's zu löchen...


    Gruß André

  5. #5
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Wenn PORTC ein Byte ist, sind die Bitnummern 13 u. 14 etwas hoch.
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  6. #6
    Erfahrener Benutzer Begeisterter Techniker Avatar von Andre_S
    Registriert seit
    26.06.2005
    Beiträge
    357
    Hallo,

    habe noch mal bei mir nachgeschaut,...BCLR ist richtig.

    @PicNick
    "dsPIC30F6012A" ist ein 16 Bit MC.


    Gruß André

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

fchao-Sinus-Wechselrichter AliExpress