mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PIC12F683 Timer program


Autor: Racer78 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

habe ein kleines Problem. Will gerne eine "astabile Kippschaltung" die 
in der Frequenz einstellbar ist mit einem PIC12F683 realisieren habe 
jedoch vom programmieren von PIC keine Ahnung.
Die Funktion soll folgendes beinhalten:
Durch Tastendruck soll am Ausgang des PIC's ein Takt mit bestimmter 
Frequenz ausgeben werden, der dann die Basis am Transistor ansteuert.
Des Weiteren soll die Frequenz von außen einstellbar sein (durch Pulsen 
der Diode soll das hochtakten in der Frequenz symbolisiert werden).

Hat vielleicht jemand ein ähnliches Programm. Habe es im mom. mit einem 
Timer 555 realisiert, würde jedoch gerne den PIc anwenden.

Im Voraus schon mal Danke.

MfG

Autor: stephan_ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mehrfachposting ...

Autor: Fred Ram (seek51)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist das so schwer?
Hier mal was in Basic. Geht von ?0?Hz bis 500Hz


dim Zähler as integer
dim Schleife as integer
Main:

if portb.0 = 1 then         'Taste gedrückt.
   Zähler = Zähler +1       'Zählerwert erhöhen
end if

if ((portb.1 = 1) and (Zähler > 0))then         'Taste gedrückt.
   Zähler = Zähler -1       'Zählerwert erhöhen
end if

Portb.3 = 1   'Ausgang aug High setzen

Schleife = Zähler
Do
    Delay_MS(1)
    dec Schleife
Loop until Schleife = 0

Portb = 0   'Ausgang aug LOW setzen

Schleife = Zähler
Do
    Delay_MS(1)
    dec Schleife
Loop until Schleife = 0

goto Main

Autor: Virus 744 (virus744)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hey Racer,

nenn mir doch mal deine Tel-Nr oder deine Emailadresse.....
...dann kann dir sicherlich geholfen werder.

Gruß

Autor: Racer78 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ging ja schnell.

Hallo Leute wuste nicht, daß es auch in C geht. Habe etwas C++ 
kenntnisse.
Muss der PIC auch noch initialisiert werden?

Danke für die schnelle Antwort.
Was brauche ich alles, um den Pic zu Flashen?

Mail: PRosalka@aol.com

MfG

Autor: Racer78 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es soll jedoch die Frequenz nicht erhöhen sondern bei einer Frequenz wie 
eben eine "astabile Kippstufe" Takten.
Es soll nur von ausßen steuerbar sein.
Z.B. Schaltung läuft mit 30Hz durch Impulse von ausßen soll es möglich 
sein diese in xxHz Schritten zu erhöhen.

Autor: Fred Ram (seek51)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist Basic und kein C !!!
Logischerweise muss die Konfig für die Pins, die Interrupts, der 
Watchdogtimer,... noch dazugebastelt werden.
Stell mal die Schaltung ein, und ein erwünschtes Timingdiagram. Dann 
können wir die Arbeit (für die du vielleicht sogar bezahlt wirds) für 
dich erledigen.
astabile Kippstufe heisst folgendes:
Ein
1 Sekunde pause
Aus
1 Sekunde pause
Ein
1 Sekunde pause
Aus
1 Sekunde pause
Ein
1 Sekunde pause
Aus
1 Sekunde pause
Ein
1 Sekunde pause
Aus
1 Sekunde pause
usw.

Wie du siehst ist die Frequenz (1/ 2 * 1) in diesem Beispiel 0,5Hz.

Gibt es auch wirklich Unterlagen dazu:
http://de.wikipedia.org/wiki/Multivibrator

Autor: Racer78 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein bezahlt werde ich für nicht. Ist für eine private Anwendung. Will 
bei einem PS3-Controller eine Taste als Takt an den µC weitergeben.

;-)

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Würdest du bei einer privaten Blinddarmoperation ebenso vorgehen?


OK.
Dein Problem ist nicht so schwer zu realisieren, ganz im Gegenteil. Aber 
ein wenig Eigeninitiative musst du schon selbst aufbringen.
Sich hinzustellen und zu sagen: "Ich will das und das bauen, bitte macht 
das für mich" ist für viele hier mitlerweile zu wenig. Zumal es Menschen 
gibt, die viel Zeit investiert haben, um so etwas zu lernen und jetzt 
damit ihre Brötchen verdienen.

Zumindest die absoluten Grundlagen kannst du dir auch leicht selber 
ergoogeln. Noch nie in der Geschichte der Menschheit war es so einfach 
an Informationen zu kommen.

Autor: Racer78 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist ja nicht so, dass ich es nicht versucht habe. Kenn mich nur mit HW 
aus, habe das Problem auch mit dem 555 Timer gelöst, jedoch ist die 
Lösung mit dem PIC viel eleganter und dazu noch platzsparender.
Werde mir jetzt erstmal ein Adapter bauen, um den PIC über RS232 Flashen 
zu können.
SW ist ein Thema für sich einigen liegt es anderen nicht. Habe oft 
versucht mich da einzuarbeiten aber....

Autor: Fred Ram (seek51)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sehe ich das richtig. Wenn einmal ein Eingang kommt, dann soll X mal der 
Ausgang getaktet werden?

dim Zähler as integer

Main:
if portb.0 = 1 then         'Taste gedrückt.
   for Zähler = 0 to 30     'Ausgang 30 mal togglen
       Portb.3 = 1
       delay_ms(15)
       Portb.3 = 0
       delay_ms(15)
   next Zähler
   do                       'Warten bis Taste wieder losgelassen
       NOP
   loop until portb.0 = 0
end if
goto Main                   'Wieder von vorne

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Fred Ram schrieb:
> Sehe ich das richtig. Wenn einmal ein Eingang kommt, dann soll X mal der
> Ausgang getaktet werden?

Ich hab das eigentlich anders verstanden

Er möchte im Prinzip einen Frequenzgenerator, dessen Frequenz er mit 2 
Tasten rauf/runter drehen kann.

IM Prinzip

 Endlosschleife

     PortPin = 1

     Warte( x )

     PortPin = 0;

     Warte( x )

Ende Endlosschleife

und mittels Tasten wird der Wert von x verändert.

Ohne Tasten ist das mehr oder weniger das 3te oder 4te Übungsbeispiel, 
dass sich jeder Anfänger selber stellt. Gleich nach: Ich will eine LED 
einschalten; Ich will eine LED ausschalten; Und jetzt soll es blinken 
sein.

Die Einstellung der Blinkfrequenz über Taster ist dann die Draufgabe im 
Blinkprogramm, gleich nachdem man den Unterschied zwischen
Aktion ausführen, solange eine Taste gedrückt ist          und
Aktion ausführen, wenn eine Taste gedrückt wird
verinnerlicht hat.

Aber summa summarum besteht das Programm nur aus Dingen, die in den 
ersten paar selbstgewählten Übungsbeispielen sowieso vorkommen und die 
ein interessierter Anfänger aus Spass an der Freude sowieso "just for 
Fun" ausprobiert.

Autor: Fred Ram (seek51)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also wie ich ganz oben geschriebenn habe. Wer lesen kann ist im Vorteil 
;-)

Autor: Racer78 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein kein Frequenzgenerator. Wirklich ein reines FlipFlop. Durch eine 
Taste aktiviert, wird am Ausgang zwischen Signal ein Signal aus 
geschaltet mit einer definierter Frequenz. Mit der zweiten Taste soll 
man den PIC auf eine andere Frequenz einstellen können.

Autor: Racer78 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Werde mir mal einiege Besispiel in meinem C++ Buch anschauen ist schon 
länger her als ich es gelesen habe.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Racer78 schrieb:
> Nein kein Frequenzgenerator. Wirklich ein reines FlipFlop. Durch eine
> Taste aktiviert, wird am Ausgang zwischen Signal ein Signal aus
> geschaltet mit einer definierter Frequenz.

Ah, ok.
Das ist für mich im Ausgangsposting noch nicht so wirklich 
rübergekommen.

Dann ist es eben nicht das 4te Selbstgewählte Übungsbeispiel sondern das 
6te oder 7te.

Dazwischen kommt noch: Mit einer Taste eine LED ein/ausschalten.

Ob das dann benutzt wird um eine LED ein/aus zu schalten, oder um den 
Programmteil "Port ein/warten/Port aus/warten" zu überspringen wenn eine 
Variable 1 ist und diese variable von der Taste von 1 auf 0 und 
umgekehrt geschaltet wird, ist eine ziemlich naheliegende Erweiterung 
und sollte zu keinerlei Problemen führen.

Autor: picpic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit PICs bist Du hier zwar nicht ganz falsch, aber eine gute Einführung 
in die PIC-Programmierung findest Du eher unter 
http://www.sprut.de/electronic/

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.