Hallo zusammen Ich brauche mal eure hilfe oder ein paar Tipps. Ich muss von der Schule aus ein kleines Projekt erstellen. Ich soll eine Uhr + eine Stoppuhr machen. Die Stoppuhr sollte Stunden,Minuten und Sekunden anzeigen. Als Display nehme ich einen 7-Segment LED Display. Ich muss die arbeit mit einem PIC Microcontroller machen. Die stoppuhr muss die üblichen funktionen haben, Start, Stop, Reset. Mein Wunsche wäre beides auf einen Display zu bringen wo man mit einem Taster von der Uhr (standart) zu der Stoppuhr umschalten kann. Mein anliegen: Ich arbeite das erste mal mit nehm PIC. Jeder Anfang ist schwer :-) Für welchen PIC soll ich mich entscheiden? Was ist noch wichtig wo ich mich darauf achten muss? Soll ich einen für die Uhr und einen für die Stoppuhr benützen das es einfacher ist? Geht es das mann beide auf einen Display bringen kann? Danke vielmals für jeden Tipp!!!! Gruss ppiicc
Ein paar Fragen: Was ist ein "kleines Projekt"? 1 Woche 1 Monat, 4 Stunden? Was hast Du von der Schule zur Verfügung gestellt bekommen? Development system, Bauteile? Was für eine Schule und Ausbildung ist das? Was ist dein elektronischer Background? Du brauchst nur einen Timer, das hat wohl jeder PIC, einen Uhrzeitquarz (2^16 Hz) un die Ansteuerung des Displays sowie ein paar Taster. Muß es ein 7Segment Display sein, ein HD44780 kompatibles LC-Display ist wahrscheinlich einfacher und weniger aufwendig anzusteuern. Ich kenne die PICs jetzt nicht besonders gut, aber da werden dir andere weiterhelfen können...
Danke für die rasche Antwort. Zeit habe ich noch genug, über ein Monat aber mit Dokumentation etc.. Das Material bekomme ich alles zur verfügung gestellt, weil sie später in den gebrauch kommt. Eine Höhere Fachschule, wir nehmen die Mikrocontroller erst im nächsten Semester durch. :-( In der Schuel sind wir gerade in Elektronik bei denn IC`s und in Digitaltechnik bei denn Codes. Es sollte schon ein LED Display sein weil er in der Dunkelheit benutzt wird und nicht zu viel Helligkeit abgeben darf (Bühne). Habe auch schon daran gedacht in am Schluss mit einem Photoelement oder was auch immer mit der Helligkeit zu steuern. Aber das wäre dann nur noch zusatz... Ich habe mir überlegt ob îch denn 16F628 Pic nehmen soll?
Wie sieht die Hardware aus? Gibt's die schon oder musst du die auch vorher entwickeln? Zur Software: Fang erst mal mit der Ansteuerung der 7-Segment Multiplexanzeige an. Dann siehst du schon mal deine Ausgaben. Wenn das rund läuft, dann machst du dich an das Entprellen der Taster. Danach kommt erst die eigentliche Stoppuhr-Funktionalität. Auf welchem PIC programmierst du? C oder Assembler?
Danke für denn Tipp Also sozusagen von hinten Beginnen. Ja die Hardware muss ich noch entwickeln. Für welchen MC soll ich mich entscheiden? In der Schule hatten wir Visual Basic, ich denke das ich es mit dem Assembler probiere... Was ich so gehört habe soll der nicht allzu schwer sein.
> Es sollte schon ein LED Display sein weil er in der Dunkelheit > benutzt wird und nicht zu viel Helligkeit abgeben darf (Bühne). LCD ist definitiv einfacher, gibt es auch mit Hintergrund-Beleuchtung. Zur Ansteuerung von 7-Segment schaust Du am besten bei http://sprut.de/electronic/pic/programm/index.htm nach, da gibt es viele Beispiele.
Cedric B. schrieb: > Es sollte schon ein LED Display sein weil er in der Dunkelheit > benutzt wird und nicht zu viel Helligkeit abgeben darf (Bühne). Dann soll es wohl ein LCD Display werden? Denn LED leuchten! Ist der PIC gesetzt oder geht auch ein Atmel Controller? Wenn Ja, dann nimm einen Mega88 und ein LCD162 von Reichelt. Siehe: Absolute Beginner-AVR Steckbrettprojekte
Cedric B. schrieb: > Was ich so gehört habe soll der nicht allzu schwer > sein. Wenn man noch nichts in Assembler programmiert hat, dann ist es alles andere als einfach. Gruß Skriptkiddy
Düsendieb schrieb: > Ist der PIC gesetzt oder geht auch ein Atmel Controller? Wenn Ja, dann > nimm einen Mega88 und ein LCD162 von Reichelt. Jetzt geht das wieder los... Wenn du Anfänger bist, dann tu dir einen Gefallen und nimm gleich einen PIC18 und programmiere in C. Die PIC16 sind für Assembler ausgelegt und von ihrer Architektur her veraltet. (Meine persönliche Meinung!) Und ein HD44780-kompatibles LCD ist einfacher anzusteuern als 7-Segment. Außerdem kannst du dabei prima die Hintergrundbeleuchtung über PWM dimmen.
Besorg dir am einfachsten ein Pickit2 mit PIC16F690 und ein Steckbrett. Am anfang ist es wichtig das die entwicklungsumgebung (IDE und programmer) out-of-the-box laufen. Ärger dich nicht lange rum und nim ein fertiges starter kit. beim Pickit sind auch eine schöne beispiele dabei, dia alles abdecken was du zum bau einer uhr brauchst. http://www.reichelt.de/?ACTION=3;GROUP=A38;GROUPID=2969;ARTICLE=87179;SID=32VZw0BawQASAAAEMVHeke073a68eb87b76a617f9735fedcb03f9
Cedric B. schrieb: > Soll ich einen für die Uhr und einen für die Stoppuhr benützen das es > einfacher ist? Bloss nicht! 2 Prozessoren im Gleichtakt zu halten uns sie so kommunizieren zu lassen, dass sie sich nicht gegenseitig ins Gehege kommen, ist immer aufwändiger als 1 Prozessor. Dein einzelner Prozessor ist mit den beiden Uhren hoffnungslos unterlastet! Der hat noch massig Reserven.
> Soll ich einen für die Uhr und einen für die Stoppuhr benützen das es > einfacher ist? Nein. 1 Controller. 1 Programm. 1 Mainloop. 0 Warteschleifen. 1 Hardware-Timer. Viele Software-Timer. Viele Zustandsmaschinen.
Eifelstern schrieb: > Besorg dir am einfachsten ein Pickit2 mit PIC16F690 und ein Steckbrett nur ein sadist schreibt sowas. vergiss die PIC16! die sind mühsam und für den müll. früher gab's nichts schlaueres, aber heute bewähren sich die PIC18 um die ersten schritte in die mikrokontrollerwelt zu machen. kein mensch müht sich noch mit den 16ern ab, ausser es geht nicht anders. entscheide dich ob du lieber mit 5V oder 3.3V arbeiten willst, dann lies dir einen beliebigen PIC18 aus der entsprechenden kategorie aus (das was du machen willst, kannst du mit jedem PIC18 machen).
Falls Du dich für C entscheiden solltest (würde ich dir empfehlen), dann kannst Du ja mal hier rein schauen: http://pic-projekte.de/pic_c.html
Cedric B. schrieb: > Für welchen PIC soll ich mich entscheiden? Gegenfrage: wie viele I/O-Pins brauchst Du denn für das was Du vorhast? 6-Stellige Anzeige braucht (im Multiplex) mindestens 14 Pins Dazu noch mindestens 3-4 Taster, eventuell noch welche um die Uhr komfortabel zu stellen oder um einen DCF77-Empfänger anzuschließen bzw. 1-2 für die Dimm-Funktion. -> Du brauchst mindestens einen 28-Pinner wenn man noch ca 5-6 Pins für Quarz, Versorgung und Resetleitung in Betracht zieht. -> PIC16F690 (20 pin) und PIC16F628 (18 pin) scheiden schon mal aus. Falls ein 28-pinner ausreicht würde ich heutzutage einen PIC18F2520 verwenden, ansonsten einen PIC18F4520 (40-pin). Der 18F2520 ist laut Microchip der Nachfolger des 16F876 Programmieren läßt er sich sowohl in Assembler als auch in C. (C18 von Microchip). Zum flashen und debuggen empfehle ich ein Pickit 3. Gruß Anja
Cedric B. schrieb: > ich denke das ich es mit dem > Assembler probiere... Was ich so gehört habe soll der nicht allzu schwer > sein. Bloß nicht! Der PIC-Assembler ist mit Abstand der am schwersten zu lernende Assembler unter den 8-Bittern. Hier mal ein Beispiel:
1 | movf NUM2L,W ;Add low bytes |
2 | addwf NUM1L,F |
3 | |
4 | movf NUM2M,W ;Add mid bytes |
5 | skpnc ;No carry_in, so just add |
6 | incfsz NUM2M,W ;Add carry_in to NUM2 |
7 | addwf NUM1M,F ;Add and propagate carry_out |
8 | movf NUM2H,W ;Add high bytes |
9 | skpnc ;No carry_in, so just add |
10 | incfsz NUM2H,W ;Add carry_in to NUM2 |
11 | addwf NUM1H,F ;Add and propagate carry_out |
Wenn Du verstehst, wie und warum diese Routine funktioniert, dann ziehe ich den Hut vor Dir. Zum Vergleich, die selbe Funktion (24Bit-Addition) auf nem AVR:
1 | add NUM1L,NUM2L |
2 | adc NUM1M,NUM2M |
3 | adc NUM1H,NUM2H |
Peter
>Zeit habe ich noch genug, über ein Monat aber mit Dokumentation etc.. Viel zu wenig für einen Anfänger. Ich weiss das klingt überheblich. LED Anzeige mit Multiplex ist nicht Anfänger tauglich. LCD auch nicht unbedingt. Aber eher als LED. Versuch erst mal eine LED zum leuchten zu animieren. Dann blinken lassen. Der nächste Versuch: Taster einlesen. Dann feststellen das die prellen. Usw, usw. Dann zur Uhr/Stoppuhr. Ohne Timer und Interrupts wird das nichts. Also Timer und Interrupts benutzen lernen. Es gibt viel mehr zu tun und zu lernen als du denkst;)
Nachtrag: Anfänger verbringen erstmal 99% der Zeit damit Fehler zu machen und diese im Programm zu suchen. Das Verhältnis Fehlersuche zu funktionierendem Code ändert sich erst nach einiger Zeit wenn man genug Erfahrung gesammelt hat.
Zu Anfang muß man erstmal jedes Projekt planen, sonst wird das nichts. Hier mal ein Link, wie sowas aussieht: http://www.rn-wissen.de/index.php/PIC_Assembler#Programm Am besten man schaltet den PC aus, nimmt Papier und Stift und schreibt in Worten die einzelnen Aufgaben und Abläufe auf. Je detaillierter, umso besser. Danach die Worte in Code umzusetzen geht dann umso leichter. Ehe es nichtmal auf dem Papier geht, ist es völlig sinnlos mit Code schreiben anzufangen. Peter
Der 18f2520 ist schon eine gute Wahl dafür. Würde dir statt dem Pickit3 aber eher zum Vorgängermodell Pickit2 raten. Besser durchdacht, kann mehr und kostet weniger. Unterstützt zwar nicht die neuen PIC32 mit Ethernet, aber ich denke, damit wird er so schnell nicht arbeiten.
Peter Dannegger schrieb: > Bloß nicht! > > > > Der PIC-Assembler ist mit Abstand der am schwersten zu lernende > > Assembler unter den 8-Bittern. > > > > Hier mal ein Beispiel: movf NUM2L,W ;Add low bytes > > addwf NUM1L,F > > > > movf NUM2M,W ;Add mid bytes > > skpnc ;No carry_in, so just add Paralax Syntax, schlimmer gehts nimmer! Und dann auch nuch eine 24Bit Adition, tolles Beispiel, völlig Anfängergeignet.... magst du die PIC's nicht? Nimm den MPASM oder C. APPLEPIE
Peter Dannegger schrieb: > Der PIC-Assembler ist mit Abstand der am schwersten zu lernende > Assembler unter den 8-Bittern. ist aber unfair einen PIC16 code zu bringen nachdem wir schon bei PIC18 waren: Bei PIC18 es ADDWFC-Befehle wodurch der Code deutlich übersichtlicher wird. Gruß Anja
Danke vielmals für eure Informationen! Ja da habe ich mir etwas vorgenommen. :-) Lernen wollte ich es so oder so und warum nicht jetzt. Lieber jetzt als kurz vor dem Abschluss... Am Anfang wollte ich es schon mit IC`s bauen aber das gäbe ein richtiges IC Grab. Darum habe ich mich für denn PIC entschieden. Also werde ich den PIC 18 nehmen, mit C programmieren und einen LCD Display benützen. Aber als erstes mal alles detailiert Aufschreiben.
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.