mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PIC 12F675 Programmierprobleme


Autor: Wolle (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Severino R. (severino)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Gerhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Wolle (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Severino R. (severino)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
__CONFIG sieht gut aus. Du hast also keinen externen Takt und der PIC 
läuft mit seinem internen Oszillator (4MHz glaube ich).
  bsf   STATUS, RP0  ; Bank 1 anw�hlen
  movlw  b'00110110'  ; GP0=in,GP1=out,GP2=out,GP3=in Pull up
  ;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?

Autor: Wolle (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Olaf K. (Firma: Hobby) (olaf-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

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.