Forum: Mikrocontroller und Digitale Elektronik PIC 16F676-I/P zwei Timer programmieren


von Ludger T. (aladin)


Lesenswert?

Hallo Forum,
ich bin neu und will eine Zeitschaltung mit einem PIC 16F676 I/P 
aufbauen.

Mit Spannung ein soll der erste einstellbare Timer starten ( Variabel 
einstellbar von 0-4 Stunden) und nach Ablauf des ersten Timers soll der 
zweite Timer starten der wiederum einstellbar ist , 0-8 Stunden.

Die Zeiten möchte ich mit zwei Poti´s einstellen.
Gibt es schon fertige Programme oder kann mir jemand  ein Programm zur 
Verfügung stellen, dass ich eventuell nur anpassen muß.

Vielen Dank für eure Hilfe!
MFG
Aladin

von Gamma-Ray (Gast)


Lesenswert?

Wieso nimmst Du keinen aktuellen PIC?

Boards und Beispiele findest Du zum Beispiel hier:

http://www.microchip.com/promo/curiosity

von Ludger T. (aladin)


Lesenswert?

Ich habe für mein Projekt noch 20 Pic 16F676-I/P

von Gamma-Ray (Gast)


Lesenswert?

Ludger T. schrieb:
> Ich habe für mein Projekt noch 20 Pic 16F676-I/P

Das ist gut.

Wenn Du sie auf eBay verkaufst, dann hast Du vielleicht das Geld für ein 
nagelneues Curiosity-Board von Microchip zusammen, mit dem Du über die 
USB-Schnittstelle Deines Rechners sofort loslegen kannst. Alles was Du 
an Software benötigst, findest Du kostenlos bei Microchip.

Beitrag #4987598 wurde vom Autor gelöscht.
von Witkatz :. (wit)


Angehängte Dateien:

Lesenswert?

Ludger T. schrieb:
> Gibt es schon fertige Programme oder kann mir jemand  ein Programm zur
> Verfügung stellen, dass ich eventuell nur anpassen muß.

Ich mach mal den Anfang. Hier ein Programmgerüst mit State Machine. Die
TBD Kommentare musst du selbst auscodieren, ich will die Arbeit únd den
Genuss des Datenblatt Lesens nicht abnehmen - nur etwas Starthilfe
geben. Für ADC und I/O findest du bestimmt genug Beispiele für ähnliche
PICs im Netz.
Was du mit "Spannung" meinst, musst du noch definieren, deswegen nur
eine Pltzahaltervariable dafür.

Gruß
witkatz

von Werner H. (pic16)


Lesenswert?

Ludger T. schrieb:
> Mit Spannung ein soll der erste einstellbare Timer starten ( Variabel
> einstellbar von 0-4 Stunden) und nach Ablauf des ersten Timers soll der
> zweite Timer starten der wiederum einstellbar ist , 0-8 Stunden.

Und was machst du dann mit der ganzen Zeit? Auch wenn ich persönlich 
nichts von dieser Art programmieren halte, such mal nach Flowcode V7, da 
gibts eine abgespeckte Version zum download.

: Bearbeitet durch User
von Jens M. (Gast)


Lesenswert?

Ludger T. schrieb:
> Mit Spannung ein soll der erste einstellbare Timer starten ( Variabel
> einstellbar von 0-4 Stunden) und nach Ablauf des ersten Timers soll der
> zweite Timer starten der wiederum einstellbar ist , 0-8 Stunden.

und warum brauchst du dann 2 Timer?

> Die Zeiten möchte ich mit zwei Poti´s einstellen.
> Gibt es schon fertige Programme oder kann mir jemand  ein Programm zur
> Verfügung stellen, dass ich eventuell nur anpassen muß.

Mit PicBasic ist das recht einfach selbst zu erstellen.

von W.S. (Gast)


Lesenswert?

Gamma-Ray schrieb:
> Wieso nimmst Du keinen aktuellen PIC?

Wieso schlägst du ihm nicht gleich einen AVR oder einen Cortex oder 
einen ganzen PC vor?

Hier gibt es eine Überschrift und die PIC16Fxxx sich keine schlechte 
Wahl, auch wenn es davon schon seit langem eine stattliche Zahl Typen 
gibt.

Allerdings würde ich nicht von 2 Timern reden, sondern von zwei 
Ereignissen, die zu bestimmten Zeiten eintreten sollen. Ereignis A soll 
nach x Sekunden eintreten und Ereignis B nach x+y Sekunden. Sowas macht 
man sinnvollerweise mit einer Art Uhr im µC, also etwas, das die 
verstrichene Zeit zählt - und hier wären Sekunden so etwa das Richtige.

Allerdings würde ich gar sehr zu einem Display raten, denn die Zeiten 
sind doch arg lang und da würde man gern sehen, ob der µC es richtig 
macht. Ein gewöhnliches Alpha-LCD wäre da ausreichend und verbraucht 
wenig Strom.

Und nein, da gibt es nix Vorgefertigtes, das man bloß zu kopieren 
braucht. Also ist Selbermachen angesagt. Bei den PIC16 würde ich da zum 
Assembler greifen, geht (zumindest für mich) am direktesten und 
schnellsten. Aber da hat der TO die eigene Wahl.

W.S.

von Ludger T. (aladin)


Lesenswert?

Hallo vielen Dank für deine Informationen, die sind sehr Hilfreich!
werde Morgen mit der Programmierung starten.
MfG.
Aladin.

von Ludger T. (aladin)


Lesenswert?

Hallo Gamma-Ray,
du hast natürlich recht.

Jetzt mal zu der Funktion:
Ich möchte sobald die Versorgungsspannung eingeschaltet wird einen 
Verbraucher für eine variable Zeit von 1 Stunde bis 4 Stunden mit voller 
Leistung betreiben und danach für eine Zeit von 1 Stunde bis 8 Stunden 
mit reduzierter Leistung betreiben.

Mit deinen Worten  Ereignis  A Betriebsmittel für x Stunden unter voller 
Leistung nach Ablauf der Zeit x Umschaltung auf eine reduzierte Leistung 
des Betriebsmittels A für die Zeit y.

Die Zeiten x und y möchte ich variabel über zwei Potis einstellen.

MfG.
Aladin.

von Stefan (Gast)


Lesenswert?

Dafür brauchst du aber keine 2 Timer.
1 Timer reicht dafür. Aber kannst du ja
machen wie du willst. Ist halt dann etwas mehr
Programmcode. Aber geht auch mit 2 Timer.
Wenn man noch keine Erfahrung mit Controller
programmieren hat, dann sollte man mit einem Timer
anfangen oder es zuerst einmal ohne Timer hin
bekommen.

von Stefan (Gast)


Lesenswert?

In welcher Sprache soll denn programmiert
werden ?

von Ludger T. (aladin)


Lesenswert?

Ich werde das Programm in Assembler Programmieren.
Und es ist richtig es geht auch mit einem Timer und zwei Ereignisssen, 
wie W.S. geschrieben hat.
Auch nochmals vielen Dank an Gamma Ray, das ist sehr hilfreich  ein 
ungefährer Ablauf.
Spannung ein bedeutet natürlich, dass am PIC die Versorgungungsspannung 
von 5 V eingeschaltet wird.

MfG
Ludger Trenkler

von Witkatz :. (wit)


Lesenswert?

Ludger T. schrieb:
> Ich werde das Programm in Assembler Programmieren.

Mit dem kostenlosen XC8 wäre das Programm in C schnell fertig. Eine 
Vorlage mit dem kompletten Zeitablauf habe ich dir ja schon erstellt.
Und jetzt wird's Assembler. Naja, mach's wie du es magst und kannst. Ich 
halte mich raus.

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.