Hallo Users, ich möchte gerne einen PIC 12F675 programmieren. Benutze hierzu den MPLAP IDE und den PicKit2 von Mircochip. Wenn ich das asm-Programm in ein Hex-File wandle und auf den Chip spiele und diesen anschliesse passiert, soweit ich das nachvollziehen kann nichts. Es sollen entsprechend der vorgegebenen Zeiten die entsprechenden Ausgänge gesetzt werden. Kann hier aber keine veränderung der Ausgänge messen. Ist mein Programm fehlerhaft? Kann ich das ganze im MPLAP simulieren, wo ich dann auch den Zustand der Ausgänge sehe bzw. EIngänge setzen kann? Vielen Dank für jeglichen Tip. Gruß Wolle
Wolle wrote: > ich möchte gerne einen PIC 12F675 programmieren. > Benutze hierzu den MPLAP IDE und den PicKit2 von Mircochip. Mit LAP-Dance hat die Software nichts zu tun, sie heisst MPLAB. > Wenn ich das asm-Programm in ein Hex-File wandle und auf den Chip spiele > und diesen anschliesse passiert, soweit ich das nachvollziehen kann > nichts. Wo schliesst Du den Chip denn an? > Ist mein Programm fehlerhaft? Wer weiss? Ist das denn überhaupt DEIN Programm? > Kann ich das ganze im MPLAP simulieren, wo ich dann auch den Zustand der > Ausgänge sehe bzw. EIngänge setzen kann? Ja, MPLAB kommt mit einem Simulator MPLAB-SIM, den Du unter dem Menüpunkt Debugger auswählen kannst. Bedienung etc. gemäss Hilfe von MPLAB, oder gemäss Handbuch oder Tutorial von der Microchip-Website. ABER: In Deinem Sourcecode fehlen die Einstellungen zu den Fuses (auch Configuration Word genannt). Du kannst die Einstellungen auch in MPLAB vornehmen (Configure->Configuration Bits), aber besser ist jedenfalls im Sourcecode, dann geht das eben nicht vergessen. Welche Werte eingestellt werden müssen hängt vom Einsatz des PICs ab und von der Beschaltung. Ev. also ein Schema posten.
Hallo Wolle ob dein programm tut was es soll, kannst du am einfachsten mit dem MPLAB-Simulator feststellen. Wenn es das tut, aber der reale PIC will nicht, dann liegts vielleicht an den Konfigurationsbits. Was hast du denn da eingestellt ? Gerhard
Hallo, danke für eure Antworten. Sorry, klar heisst das Programm MPLAB, nicht MPLAP. Das Programm wurde früher mal entwickelt, nun aber weiter ausgebaut. Daher ist es MEIN Programm. Die Beschaltung des Pics sieht wie folgt aus: - Spgs.versorgung an Vdd und Vss - Die restlichen Pins sind Ein- bzw. Ausgänge bzw. sollen es sein. GP 0 und 3 sollen Eingänge sein, alle restlichen (GP 1, 2 und 4) sollen Ausgänge sein. GP 5 wird nicht verwendet. - an den Konfigurationsbits hab ich bisher noch nichts verstellt. hab da was im Netz gefunden (siehe nachfolgend), ist dies so eine Konfiguration? __CONFIG _CP_OFF & _CPD_OFF & _BODEN_OFF & _MCLRE_OFF & _WDT_OFF & _PWRTE_ON & _INTRC_OSC_NOCLKOUT Muss ich hier noch was dran ändern? - Hab dann auch noch eine IO initialiserung gefunden? Habe diese auf meine IO-Konfig angepasst und mal in mein Programm eingefügt. Allerdings bekomme ich immer die Warnung "Register in operand not in bank 0. Ensure that bank bits are correct" für die Zeilen in denen "AMSEL" und TRISIO" verwendet wird. Wäre super wenn ihr mir hier weiterhelfen könntet. Vieln Dank. Gruß Wolle
__CONFIG sieht gut aus. Du hast also keinen externen Takt und der PIC läuft mit seinem internen Oszillator (4MHz glaube ich).
1 | bsf STATUS, RP0 ; Bank 1 anw�hlen |
2 | movlw b'00110110' ; GP0=in,GP1=out,GP2=out,GP3=in Pull up |
3 | ;movwf WPU ; Beschreiben des WPU_Registers 0= Pull up disabled |
das mit den Pull-Ups wird nicht funktionieren, da die Anweisung movwf WPU auskommentiert ist. Tatsächlich muss die Initialisierung für digital I/O korrekt vorgenommen werden. Wie, steht im Datenblatt in Kap. 3.1. Das Register heisst ANSEL, nicht AMSEL. Die Warnung betr. Bank für ANSEL und TRISIO ist schon ok. Hast Du die Bank 1 auch wirklich eingeschaltet? Da ich in Deinem Code weder ANSEL noch AMSEL finden kann, muss ich annehmen, Du hast den Code nach dem Posten noch verändert. Konntest Du das Programm in MPLAB SIM simulieren? Willst Du den aktuellen Code posten?
Hallo, ja mein Code hat sich nun komplett verändert. Meine wenige Erfahrung hat dies leider nicht ausgeschlossen. Hab da was im Netz gefunden: http://www.bertys.ro/pic12F675/FlashLed.asm Hab dieses Programm für den PIC12F675 als Grundlage genommen und auf meine Anforderungen angepasst. Hat sofort auf Anhieb funktioniert, ohne Probleme. Jetzt wird mir auch im Code und die verwendeten Befehle auch klarer. Leraning by doing ist eben nicht immer so schlecht. Testen konnte ich den Code im MPLAB nicht. Würde hierbei dann gerne Eingänge setzen, sonst passiert in meinem Programm nicht viel, außer der Wiederholung einer Warteschleife. Wenn mir dass noch jemand für weitere Projekte sagen könnte, wärs echt super. Vielen Dank für Eure Unterstützung. Hat mir sehr weitergeholfen. Gruß Wolle
Im MPLAB gibt es unter Debugger /Stimulus. Die Möglichkeit deine Eingänge zu setzen. Die kannst Du dann während der Simulation mit fire an deinem Programmpunkt betätigen. MfG olaf
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.