PIC_Uhr_mit_Stoppuhr wie anfangen?

OP #1974248
Lesenswert?

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
#1974256
Lesenswert?

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...
OP #1974285
Lesenswert?

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?
Gast #1974289
Lesenswert?

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?
OP #1974297
Lesenswert?

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.
Gast #1974331
Lesenswert?

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.
Gast #1974343
Lesenswert?

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
#1974352
Lesenswert?

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.
Gast #1974399
Lesenswert?

> 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.
#1974513
Lesenswert?

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).
Gast #1974676
Lesenswert?

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
#1974775
Lesenswert?

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
Gast #1974788
Lesenswert?

>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;)
Gast #1974794
Lesenswert?

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.
#1974801
Lesenswert?

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
Gast #1974809
Lesenswert?

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.
Gast #1974819
Lesenswert?

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
OP #1975043
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren