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
Siehe Datenblatt. Lass doch zuerst einmal eine LED blinken. Damit bisst du schon mal ein paar Tage beschäftigt.
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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.