Hey,
um mit den PIC Microkontrolern anzufangen habe ich mir eine einfache
Aufgabe gestellt:
- drei LEDs (Blau, Grün, Rot) sollen mit einen Taster nacheinander an
und Ausgeschaltet werden (1. Tastendruck: Grüne LED geht an - 2.
Tastendruck Blaue LED geht an - 3. Tastendruck: Grüne LED geht aus...).
-mit einem zweiten Taster soll eine LED ein, und beim zweiten drücken
ausgeschaltet werden.
Im Simulationprogram "Real Pic Simulator" und "MPLAB SIM" funktioniert
das Programm auch so wie ich es haben will. doch beim Laden auf ein
16F628A Chip mit "Propic2" reagiert der Chip nicht auf die Signale, die
ich ihm Gebe.
Die Taster schalten 5V an PIN RA1 und RB1 und die Ausgänge kontrolier
ich mittels Voltmeter (will keine Bauteile verschwenden, solange der
Chip nicht ordnungsgemäß lauft).
Program:
1
list p=16f628A ; list directive to define processor
2
#include <p16F628A.inc> ; processor specific variable definitions
3
4
errorlevel -302 ; suppress message 302 from list file
RobertVogel schrieb:> Hey,> um mit den PIC Microkontrolern anzufangen habe ich mir eine einfache> Aufgabe gestellt:> ich mittels Voltmeter (will keine Bauteile verschwenden, solange der> Chip nicht ordnungsgemäß lauft).
Der läuft sicherlich ordnungsgemäss. Das Problem liegt bei dir, bzw.
deinem Programm und nicht beim PIC.
Aber: Was du festgestellt hast ist, dass deine vermeintlich 'einfache
Aufgabe' in Wirklichkeit noch immer viel zu schwer ist. Du musst dir
eine noch einfachere Aufgabe stellen.
Taste drücken -> LED leuchtet
Tatse nicht drücken -> LED leuchtet nicht
Und für die allerersten Versuche solltest du auch die Taste gleich noch
weg lassen und dich nur mit der LED (oder mehreren LED) alleine
beschäftigen.
Die einzige Web-Site die ich kenne, die so etwas ähnliches wie ein PIC
Tutorial anbietet, ist Sprut.de
http://www.sprut.de/electronic/pic/grund/grund.htm
Ich bin mit dem Programieren in Assembler vertraut. Ich bin dabei mich
in die PICs einzuarbeiten und diese Aufgabe dient nur zur vorbereitung
auf andere Komplexere anwendungen.
Diese aller einfachsten Übungen habe ich allerdings auch Bewerkstelligt
und diese Funktionierten auch.
RobertVogel schrieb:> Die Taster schalten 5V an PIN RA1 und RB1
Und hast Du auch Ziehwiderstände nach GND? Soll heißen: wer sorgt dafür,
dass bei nicht-gedrückter Taste das Signal 0 ist?
Gruß Dietrich
RobertVogel schrieb:> Die Taster schalten 5V an PIN RA1
Und ist PortA auch auf Digital umgeschaltet? (default ist der Analog) -
zumindest sehe ich das niergends...siehe DB 5.1
um die erste Aufgabe zu lösen kann ich das "Vellemann 8048"
Experimentierbord nutzen. Da sind die Wiederstände eingebaut. in der
Schaltung die ich für die Kontrolle des Interrubs aufgebaut habe fehlen
diese Widerstände zwar noch, das Program läuft aber auf beiden nicht.
an der von dir angefragten Stelle:
wen PORTA,1 = 1: springe vor zu Markierung "Gelb"
ansonsten springe zurück zur Markierung "Rot".
wie schon erwähnt, diese Zeilen haben nichts mit dem Interrubt zu tun.
Habe den Fehler übrigens schon Lokaliesiert. Er lag in der Schaltung.
Eine eigene Frage?
Dieser Thread ist über 13 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.