- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 1 bis 6 von 6

Thema: Gibt es Software, die Programm für anderen PIC modifiziert?

  1. #1
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    72
    Beiträge
    11.077

    Gibt es Software, die Programm für anderen PIC modifiziert?

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo!
    Bin kein Neuling wenn es um Assemblerprogrammierung geht. Mit den PIC MC´s, beschäftige ich mich erst knapp ein Jahr. Vorher habe ich andere Prozessoren programmiert.
    Mein Problem: Ich arbeite mit PIC´s, die zu verschiedenen "Familien" gehören. Ich will ein Program, das z.B. auf dem PIC18F252 gelaufen ist auf dem z.B. PIC12F629 anwenden. Ich weiß genau, was da geändert werden muß.
    Meine Frage: Gibt es Software, die Programm für anderen PIC modifiziert?
    Ich bin dankbar im voraus für jede Information.
    MfG PICture

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    01.01.2005
    Beiträge
    79
    Moin!
    Ich habe keine Ahnung, denke jedoch, dass sowas nicht existiert zumindest wäre es sehr wahrscheinlich, dass ich davon gehört hätte.
    Wär aber eine Feine Idee so ein Prog zu schreiben!

    Gruß
    lk

  3. #3
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    72
    Beiträge
    11.077
    Hallo stowoda!
    Sag mal, kannst Du meine Gedanken lesen?. Ich will schon seit lange, so ein Programm schreiben, wußte aber nicht, ob außer mich, noch jemand so was brauchen würde. Ich habe mir so eine Programm Bibliotek auf meinem Werkzeug (NB) angelegt, wo in getrennten Verzeichnissen, schon ausprobierte Programme gespeichert sind. Das ist eine gewöhnheit aus der Zeit wo ich noch PC in ASM programiert habe. Es hat sich sehr gelohnt. Ich hatte schon hunderte kleine Programme, aus denen ich in kurzen Zeit sehr mächtige (nach dem LEGO prinzip) zusammen gelinkt habe. Genau! Neue Idee! PIC Macro Linker. Das wäre das, was ich wirklich brauche um mich so gut, wie im PC fühlen zu können. Was denkst Du?

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    01.01.2005
    Beiträge
    79
    Nur zu!
    Mir fehlt es leider an ausreichenden C Kenntnissen, aber wenn Du Dich dazu in der Lage siehst, würde das besagte Programm sicherlich vielen Leuten von Nutzen sein. Mehr oder weniger, je nach den Fähigkeiten!

    Gruß
    lk

  5. #5
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    72
    Beiträge
    11.077
    Ich kenne von Hochsprachen für PC nur Q-Basic, denke aber, das es sich für so was eignet. In QB habe ich schon u.a. ein universieller Assembler für MC´s geschrieben.
    Auf den ersten Blick sehe ich den PIC Linker so, dass man Prozessor Typ und seine Konfiguration sowieso am Anfang des Endprogrammes neu schreiben (kopieren) muß. Weiter kommen die #define Zeilen. Da muß nur geprüft werden ob welche mehrmals vorkommen. Wenn ja, dann bleibt er an der Zeile stehen und man muß welche ändern, so lange, bis es passt. Das merkt er sich, um sie weiter in ASM Kode auszutauschen. Die RAM Zuweisungen (EQU) genauso. Und dann kommt das eigentliche Programm. Da müssen einige Befehle je nach Ursprungs- und Zielprozessor auch geändert oder durch kurze Unterprogramme ersetzt werden. Z.B wenn man PIC 18 auf PIC 12 wechselt muß movff A,B durch movf A,0 + movwf B ersetzt werden. Da muß man warscheinlich so eine .txt Datei erstellen, aus der, er sich das richtige holt. So weit ich weiß es gibt nur zwei Befehlsätze für 16 und 14 bit PIC´s. Na ja, alles scheint am Anfang und am Ende so einfach zu sein. Es kommen noch hofentlich welche Beiträge von PIC Profis, die für mich sehr hilfreich seien würden.
    So einfach geht es, oder?
    Ich muß noch bischen nachdenken, wenn es um SFR´s geht. Da kann man wahrscheinlich die .inc Dateien von MPASM nutzen. Und jetzt verabschiede ich mich, weil für mich (Nachtschichtler) jetzt der Befehl sleep kommt.
    Ich melde mich später wieder.
    Schöne Grüße!

  6. #6
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    72
    Beiträge
    11.077
    Hallo!

    Weil ich mich ständig mit verschiedenen PICs beschäftige und mir eine Unterprogrammbibliothek erstellt habe, wo ich mir schon entwickelte Unterprogramme ablege, habe ich folgendes festgestellt:

    Damit Programme auf allen PICs laufen, darf man nur 34 Befehle (ausser CLRW) von PIC12XXX und PIC16FXXX benutzen und für Variablen nur die RAM Adressen ab 20h bis 4Fh definieren.

    Da die PIC18FXXX keine Bankumschaltung haben, mussen alle Bankumschaltungen, wie bsf STATUS,RP0 und bcf STATUS,RP0 entfernt werden.

    Wegen nur 2 Befehlen (warum haben die Spezialisten vom Microchip das nicht einheitlich gemacht ?), muss mann entsprechend der Pfeilrichtung folgendes ersetzen:

    PIC12FXXX oder PIC16FXXX <---> PIC18FXXX:

    .....................................RLF <---> RLCF

    .....................................RRF <---> RRCF

    Bei Änderung "fremden" Programmen vom PIC12FXXX oder PIC16FXXX auf PIC18FXXX gibt es noch ein Befehl:

    PIC12FXXX oder PIC16FXXX---> PIC18FXXX

    ................................CLRW ----> MOVLW 0

    Alle andere Befehle vom PIC18FXXX sind für die PIC12FXXX und 16FXXX "nicht verständlich" und müssen in kleine Befehlsequenzen "übersetzt werden". Zum Beispiel:

    "MOVFF A,B" in "MOVF A,0"
    ........................"MOVWF B".

    Bei indirekter Adressierung kommen noch ein paar Kleinigkeiten dazu.

    Wenn man ein Programm auf einem anderen PIC laufen lassen will, müssen alle benutzte I/O Pins entsprechend umdefiniert und genauso wie im unsprünglichen Programm initialisiert werden.

    MfG

Berechtigungen

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

MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad