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
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
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
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.
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
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.
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....
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
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.
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.
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.
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/
Eine eigene Frage?
Dieser Thread ist über 16 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.