Forum: Mikrocontroller und Digitale Elektronik Brauche Hilfe bei Programmierung PICkit 1


von Bieny (Gast)


Angehängte Dateien:

Lesenswert?

Hallo.

Habe da ein dringendes Problem und komme einfach nicht weiter.
Ich habe eine Projektarbeit und ein Teil davon ist es einen 
Microcontroller zu programmieren. Das Programm läuft bereits auf einer 
Logo. Jedoch bringe ich es nicht hin es in C zu schreiben und auf meinen 
Microcontroller (PICit 1) zu übertragen. als IC habe ich einen PIC16F684 
verbaut.

Funktionsberscheibung:
Das ganze soll eine Schalthilfe für ein Fahrrad realisiern.
Fährt man mit dem Fahrrad auf gerader Strecke passiert nichts.
Kommt man dagegen mit dem Fahrrad an einen Berg und hat einen zu hohen 
Gang eingelegt wird das Fahrrad und somit die Tretgeschwindigkeit 
langsamer > der Controller wertet das aus und wenn ich langsamer bin als 
es meine Untergrenze zulässt (zu wenig Impule des Reedkontakts der meine 
Pedalenumdrehung misst) erscheint ein Optisches Signal (bsp LED ROT) zum 
Gang herunter schalten.

Fahre ich mit dem Fahrrad auf gerader ebene und strampel mir einen ab 
("zu viele" Impulse der Pedalenumdrehung) erscheint das optische Signal 
zum Gang hochschalten.

Wenn ich Bergab fahre und somit nicht rein trete passiert ebenfalls 
nichts - dies ist durch die Abfrage der Radumdrehung verriegelt.

Eine Abfrage von höchsten und kleinstem Gang sorgt dafür, dass man im 
höchsten Gang nicht mehr das Signal zum hochschalten bekommen kann. Das 
gleiche gilt für den kleinsten Gang mit dem herunter schalten.


>> Nun zu meinen Problemen <<

Das Programm an sich bekomme ich vll noch irgendwie hin.
Jedoch finde ich nichts, das mir sagt wie ich in der Programmbezeichnung 
meine Ein/Ausgänge definieren muss. Wie spreche ich die an?
In der Bedinungsanleitung sind zwar die Schaltpläne des Controllers aber 
nichts dass mir sagt wie bsp. der LED ausgang D8 im Programm 
angesprochen werden muss....


Hoffe ihr könnt mir helfen.

Danke

: Verschoben durch User
von micha (Gast)


Lesenswert?

Siehe Datenblatt.
Lass doch zuerst einmal eine LED
blinken. Damit bisst du schon mal ein paar
Tage beschäftigt.

von Chris B. (dekatz)


Lesenswert?

Der "Schaltplan" (ist wohl die Pinbelegung gemeint) allein hilt dir 
nicht viel. Das wichtigste ist das Datenblatt und dort der Abschnitt 
über die PORTS und deren Initialisierung (Analog vs Digital, Input vs. 
Output )

http://ww1.microchip.com/downloads/en/DeviceDoc/41202F-print.pdf

von GroberKlotz (Gast)


Lesenswert?

Bieny schrieb:
> Das Programm an sich bekomme ich vll noch irgendwie hin.
> Jedoch finde ich nichts, das mir sagt wie ich in der Programmbezeichnung
> meine Ein/Ausgänge definieren muss. Wie spreche ich die an?
> In der Bedinungsanleitung sind zwar die Schaltpläne des Controllers aber
> nichts dass mir sagt wie bsp. der LED ausgang D8 im Programm
> angesprochen werden muss....

Du kannst an geeigneter Stelle im Programm, optimal in der ISR 
(TMR0-Overflow-Interrupt als Zeitgeber) einen Timer abfragen und dann 
jede Sekunde (Minute etc) den Zählerstand Deines Pedals, bzw. Rades 
abfragen und in eine Variable kopieren.

Die Kopie vergleichst Du dann im Hauptprogramm mit Deinem Grenzwert. Ist 
der Grenzwert erfüllt, dann setzt Du Deinen Pedal- oder 
Radumdrehungszähler wieder auf 0
Die LEDs (angenommen am PORTB angeschlossen) schaltest Du dann z.B. so

   bsf PORTB,RB7        ;LED Nr. 7 EIN
bzw.
   bcf PORTB,RB7        ;LED Nr. 7 AUS
wieder aus.

Die Antwort ist natürlich nur rudimentär, kann hier ja keinen 
Assemblerlehrgang behandeln.

mfG GroberKlotz

von Kein Name (Gast)


Lesenswert?

Wenn niemand ein besseres Tutorial hat....

http://www.sprut.de/electronic/pic/ erklärt, wie es in Pic16 Assembler 
geht.

http://pic-projekte.de/wiki/index.php?title=PIC_C_Tutorial erklärt, wie 
es in Pic18 C geht.

Und dann musst du noch im Compiler Handbuch nachschauen, was dein 
Compiler statt #include <p18cxxx.h> oder PORTBbits.RB0 haben will.

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
Noch kein Account? Hier anmelden.