Forum: Mikrocontroller und Digitale Elektronik HDD Clock (Timer Programmieren)


von Aleksandar J. (Gast)


Lesenswert?

Ich habe ein Problem mit meiner Diplomarbeit(HDD Clock). Und zwar bin 
ich gerade dabei ein Programm zu schreiben um den 3 
Phasenmotor(Festplattenmotor) ansteuern zu können. ich habe 4 
Anschlüsse: 1.)die versorgung; 2,3,4.)die Phasen. Es muss erst NUR die 
Phase 1 EIN sein, dann Phase 2, und dann Phase 3.  Ich müsste hier doch 
einen Timer Programmieren jedoch weiß ich leider nicht wie. Ich hoffe 
ihr könnt mir weiter helfen. Programmiert wird in "C". Ich bedanke mich 
bereits im vorhinein für jegliche hilfe.

von Peter II (Gast)


Lesenswert?

Aleksandar J. schrieb:
> Programmiert wird in "C". Ich bedanke mich
> bereits im vorhinein für jegliche hilfe.

und wer soll in "C" Programmiert werden? Was sagt das Datenblatt zu 
Timern?

von Kaj (Gast)


Lesenswert?

Aleksandar J. schrieb:
> Diplomarbeit

Aleksandar J. schrieb:
> jedoch weiß ich leider nicht wie

Traurig. Du solltest in der Lage sein, dir dieses Wissen selbst zu 
erarbeiten, sei es durch das Lesen eines Buches oder durch das Lesen des 
Datenblattes deines Mikrocontrollers...

Und ja, das meine ich ernst. Wenn du bei einer Dimplomarbeit nicht in 
der Lage bist, dir selbst zu helfen, dann lass es!
Wie bist du ueberhaupt soweit gekommen?

von Aleksandar J. (Gast)


Lesenswert?

Peter II schrieb:

> und wer soll in "C" Programmiert werden? Was sagt das Datenblatt zu
> Timern?

PIC18f2520

Kaj schrieb:

> Traurig. Du solltest in der Lage sein, dir dieses Wissen selbst zu
> erarbeiten, sei es durch das Lesen eines Buches oder durch das Lesen des
> Datenblattes deines Mikrocontrollers...
>
> Und ja, das meine ich ernst. Wenn du bei einer Dimplomarbeit nicht in
> der Lage bist, dir selbst zu helfen, dann lass es!
> Wie bist du ueberhaupt soweit gekommen?

Das liegt vielleicht an meinen schwachen Programmier Kenntnissen, aber 
falls du jemanden nicht helfen möchtest dann bitte ich dich auch keinen 
Beitrag ein zu fügen und diese Person nicht runter zu machen. Ich weiß 
nicht warum du so etwas machen musst, vielleicht fühlst du dich dabei ja 
gut, aber unterlasse es einfach.
Danke an Kaj!

von Klaus Dieter (Gast)


Lesenswert?

Aleksandar J. schrieb:
> Das liegt vielleicht an meinen schwachen Programmier Kenntnissen, aber
> falls du jemanden nicht helfen möchtest dann bitte ich dich auch keinen
> Beitrag ein zu fügen und diese Person nicht runter zu machen. Ich weiß
> nicht warum du so etwas machen musst, vielleicht fühlst du dich dabei ja
> gut, aber unterlasse es einfach.
> Danke an Kaj!

Geht's noch? Warum sucht man sich denn bitte eine solche Aufgabe, wenn 
man die Werkzeuge zur Lösung noch nicht einmal in den Grundzügen 
beherrscht??

von Karl H. (kbuchegg)


Lesenswert?

Aleksandar J. schrieb:
n
> Beitrag ein zu fügen und diese Person nicht runter zu machen. Ich weiß
> nicht warum du so etwas machen musst,

vielleicht weil viele von uns schon mal die Erfahrung gemacht haben, 
dass da ein neuer mit einem Abschluss in die Firma kommt, der das gar 
nicht kann was sein Abschluss eigentlich erwarten lassen sollte. 
Personalchefs gehen nur vom Zeugnis aus. Ausbaden dürfen die Misere dann 
die, die seine Arbeit mitmachen dürfen, weil er selber das Geforderte 
überhaupt nicht kann.

Und sorry. µC programmieren, ohne mit Timern umgehen zu können, geht gar 
nicht. Timer sind DIE Arbeitspferde in der µC-Programmierung. Es gibt 
kaum ein ernst zu nehmendes Programm, in dem nicht mindestens 1 Timer 
eine tragende Rolle spielt.

von Aleksandar J. (Gast)


Lesenswert?

Karl Heinz schrieb:

> vielleicht weil viele von uns schon mal die Erfahrung gemacht haben,
> dass da ein neuer mit einem Abschluss in die Firma kommt, der das gar
> nicht kann was sein Abschluss eigentlich erwarten lassen sollte.

so etwas ist mir natürlich bewusst, jedoch liegt der Schwerpunkt meiner 
zukünftigen arbeit nicht darin etwas zu Programmieren. Aber ich möchte 
hier auch nicht darüber diskutieren weil ich einfach denke das so etwas 
nicht sein muss.

von Karl H. (kbuchegg)


Lesenswert?

Aleksandar J. schrieb:

> Aber ich möchte
> hier auch nicht darüber diskutieren

Das glaub ich dir unbesehen

> weil ich einfach denke das so etwas
> nicht sein muss.

Die meisten hier denken aber schon das das sein muss. Wenn du dich 
bisher schon nicht am Riemen gerissen hast, dann tus wenigstens jetzt. 
Immerhin ist das dein ABSCHLUSS! Mit dem wird etwas dokumentiert. Und 
sei es nur, dass du wenigstens so schlau bist, dir ein Abschlussprojekt 
zu suchen, bei dem du nicht mit sapperndem Mundwinkel das ausgesucht 
hast was du cool findest, sondern das was du auch stemmen kannst.

von uwe (Gast)


Lesenswert?

Und was hast du so für Leistungstreiber verbaut?
Aber zu den Timern: Da ließt man halt das Datenblatt mit C hat das wenig 
zu tun. Da müssen halt die Richtigen Bit in den richtigen Registern 
gestzt werden und dann macht der Timer das schon. Und wenn du jetzt 
fragst wie man ein Bit in C setzt dann ist eh alles egal.

von Karl H. (kbuchegg)


Lesenswert?

Karl Heinz schrieb:

> sei es nur, dass du wenigstens so schlau bist, dir ein Abschlussprojekt
> zu suchen, bei dem du nicht mit sapperndem Mundwinkel das ausgesucht
> hast was du cool findest, sondern das was du auch stemmen kannst.

Und seien wir uns mal ehrlich: so schwer ist zumindest der im 
Eröffnungsposting angesprochene Teil nicht. Der ist sogar eher, ähm wie 
sag ichs, recht trivial, wenn man mit einem Timer zumindest grundlegend 
umgehen kann. Genau da besteht die Diskrepanz. Auf deinen Seite steht 
eine eigentlich recht einfache Sache, auf der anderen Seite steht das 
Wort ABSCHLUSS.

von Klaus Dieter (Gast)


Lesenswert?

Aleksandar J. schrieb:
> jedoch liegt der Schwerpunkt meiner
> zukünftigen arbeit nicht darin etwas zu Programmieren

Dann hast du dir offenbar was völlig falsches ausgesucht. Deine 
Abschlussarbeit wird ein wesentlicher Bestandteil dessen sein, was sich 
dein zukünftiger Arbeitgeber ansehen wird um deine Eignung für das 
Unternehmen zu bewerten.

von Stefan Schulz (Gast)


Lesenswert?

Willkommen in der Realität :)

Was studierst Du, wenn man fragen darf?
Wenn Du natürlich deutschen Sprechgesang und darstellende Kunst des 
frühen Känozoikums studierst, dann ist das ja kein Problem.
Es kann natürlich sein, das sich dann hier der eine oder andere die 
Frage stellt, was Du dann mit einer HDD-Clock als Studienarbeit anfangen 
willst.

Solltest Du allerdings tatsächlich was mit Elektronik studieren, so doch 
wohl, weil du das "geil" findest. Und dann macht man das doch auch schon 
ein ganze Weile, BEVOR man mit seiner Studienarbeit (Diplom) anfängt. 
WAS in alles in der Welt hast Du bislang in deiner Freizeit denn 
gemacht, wenn nicht z.B. Mikrocontroller programmiert?

Verstehst Du, weshalb sich hier alle das Maul zereissen?

Wenn Du statt dessen Choreografien erfindest und neun Arten des 
Versmasses(Metrum) entwickelst, dann will ich nichts gesagt haben.

Such Dir was in deine Schublade passt und mach nichts Artfremdes als 
Diplomarbeit. Mach was Du willst, klar. Geht mich nichts an. Wollte nur 
grob aufzeigen, weshalb "alle hier so komisch" sind.

Gruß
StSchlz

von Cyblord -. (cyblord)


Lesenswert?

Wo kann man denn heute doch eine Diplomarbeit machen? Dachte da wär 
alles Bachelor und Master verseucht.
Wo studierst du denn und auf welchen Abschluss genau?

von Kurt B. (kurt)


Lesenswert?

Eine Diplomarbeit als Hobby?

Beitrag "3 Phasenmotor über PIC ansteuern"

von Aleksandar J. (Gast)


Lesenswert?

Könntest du diesen Beitrag einfach Löschen? Ich wäre dir dafür dankbar.

von asterix (Gast)


Lesenswert?

Kurt Bohnen schrieb:
> Eine Diplomarbeit als Hobby?
>
> Beitrag "3 Phasenmotor über PIC ansteuern"

musste ich ja gerade etwas schmunzeln :-D

von Aleksandar J. (Gast)


Lesenswert?

ah entschuldige, ich meine natürlich diesen Thread löschen...

von Kaj (Gast)


Lesenswert?

Aleksandar J. schrieb:
> Kaj schrieb:
>
>> Traurig. Du solltest in der Lage sein, dir dieses Wissen selbst zu
>> erarbeiten, sei es durch das Lesen eines Buches oder durch das Lesen des
>> Datenblattes deines Mikrocontrollers...
>>
>> Und ja, das meine ich ernst. Wenn du bei einer Dimplomarbeit nicht in
>> der Lage bist, dir selbst zu helfen, dann lass es!
>> Wie bist du ueberhaupt soweit gekommen?
>
> Das liegt vielleicht an meinen schwachen Programmier Kenntnissen, aber
> falls du jemanden nicht helfen möchtest dann bitte ich dich auch keinen
> Beitrag ein zu fügen und diese Person nicht runter zu machen. Ich weiß
> nicht warum du so etwas machen musst, vielleicht fühlst du dich dabei ja
> gut, aber unterlasse es einfach.
> Danke an Kaj!

Ok, jetzt mal ernsthaft:
Es geht um eine Diplomarbeit. Das lässt irgendwie darauf schließen, 
das du nicht gerade erst anfängst mit deinem Studium, sondern dich 
irgendwie am Ende befindest!

Im Jahre 2014 ist es nicht sonderlich schwer an Informationen zu kommen, 
dank Internet. 1970 sah das anders aus, da bin ich mir sicher, auch wenn 
ich da noch nicht geboren war.

Aussagen wie "...meine schwachen Programmierkenntnisse..." sind nicht 
mehr als eine Ausreden, eben so wie: "Ach, ich will ja ins Fitness 
Studio, aber nach der Arbeit bin ich immer so kaputt...".
Hör auch zu weinen und tu was, oder lass es, aber hör auf dich als Opfer 
darzustellen!
Du meinst deine Programmierkenntnisse sind nicht ausreichend? Dann 
ändere das doch einfach! Programmieren lernt man nicht durch zugucken, 
sondern dadurch, das man es einfach macht! Natürlich wirst du dich oft 
auf die Fresse legen, ist uns allen hier passiert!

Also: statt hier zu nölen wie gemein mein Beitrag und die Welt ist, 
besorg dir ein Buch 
(http://www.amazon.de/PIC-Microcontroller-Programmierung-Assembler-Schaltungen-Anwendungsbeispiele/dp/348659706X/ref=sr_1_1?ie=UTF8&qid=1414598732&sr=8-1&keywords=mikrocontroller+pic), 
eine IDE, ein Dev-Board, einen Programmer/Debugger (falls nicht schon 
auf dem Board vorhanden, wie bei den STM32 Discovery-Boards) und
fang einfach an .
Das Buch suchen hab ich dir jetzt schon abgenommen...
Fang an mit den üblichen LED-Blink-Beispielen, und dann geht's weiter.

Wenn du ein paar Zeilen programmiert hast, und dann was nicht 
Funktioniert, kannst du hier immernoch nachfragen, warum dieses oder 
jenes nicht Funktioniert.

Willkommen in der wirklichen Welt.

Aleksandar J. schrieb:
> ich meine natürlich diesen Thread löschen...
Das sagt mir, das du hier nicht die Antwort bekommen hast die du gesucht 
hast... Richtig! Hier wird niemand Deine Diplomarbeit machen. Hier 
gibt es hilfe zu selbst hilfe, fertig! (z.B. dezente Hinweise, sich 
Informationen zu beschaffen!) In deinem Eingangsposting zeigst du 
keinerlei bestrebung auch nur irgendwas selbst tun zu wollen. Das liest 
sich wie das übliche "Ich hab hier ne hausaufgabe, hab aber kein bock 
die zu machen. Macht ihr das mal."
Meh, Pustekuchen! Deine Arbeit, machst du mal schön selber.

So, und jetzt tu endlich mal was für Deine Diplomarbeit !

Und nein, ich seh das nicht ein, meine Worte in rosa Plüsch zu 
verpacken, nur damit es nicht weh tut! Das hat auch nichts mit 
"runtermachen" zu tun, aber du musst doch selber zugeben, das es traurig 
ist, wenn man vor seiner Diplomarbeit steht (im Jahre 2014), und nicht 
in der Lage ist, sich selbstständig Informationen zu beschaffen... oder 
möchtest du vielleicht einmal deinen Standpunkt dazu erläutern?

Andi schrieb:
> Es wäre toll wenn ihr mir vielleicht einen Code
> hinnein stellen könntet.
Lass gut sein, deinen Standpunkt dazu will ich gar nicht hören, denn das 
sagt alles !

Aleksandar J. schrieb:
> jedoch liegt der Schwerpunkt meiner
> zukünftigen arbeit nicht darin etwas zu Programmieren
Herr Richter, ich möchte meine Aussage dazu verweigern!

von Dreister Schnösel (Gast)


Lesenswert?

Stefan Schulz schrieb:
> Solltest Du allerdings tatsächlich was mit Elektronik studieren, so doch
> wohl, weil du das "geil" findest. Und dann macht man das doch auch schon
> ein ganze Weile, BEVOR man mit seiner Studienarbeit (Diplom) anfängt.
> WAS in alles in der Welt hast Du bislang in deiner Freizeit denn
> gemacht, wenn nicht z.B. Mikrocontroller programmiert?
>
> Verstehst Du, weshalb sich hier alle das Maul zereissen?

Nein, das verstehe ich AUCH nicht. Warum nicht? Nun, die POLITIK hat 
es
so gewollt, daß jeder ALLES studieren kann, weil wir ja einen solchen
Fachkräftemangel haben, daß es einen Hund erbarmt. Wichtig ist der
Titel, was dahintersteckt, ist gleichgültig. Beschwert Euch nicht bei
denen, die auf die Leimrute gelockt wurden.
-----------------------------------------------------------------------+

@TO
Ich kann Dir nicht mit einem fertigen Programm dienen, würde aber so
herangehen: Es muß 3 Zyklen geben, in denen sich die Phasen aber nicht
nur abwechseln, sondern immer 2 überlappen. Wenn Du einen Timer nimmst,
der z.B. 16-Bit "breit" ist, dann mußt Du den Zählumfang so aufteilen,
daß die Zyklen zustande kommen. Der Timer zählt vor sich hin, immer 
reih-
um 65536 Schritte. Wenn er bei 65535 angelangt ist, geht es wieder bei 0 
los.

Jetzt sagst Du: Ich teile diesen Zählumfang durch 3 und steuere über
3 Ausgänge des Kontrollers 3 Transistoren an uns damit die 3 Feld-
wicklungen.
Das ist erst mal nur ein "Notbetrieb", weil in der Realität die Phasen
nicht nacheinander geschaltet werden.

Zum Ausprobieren reicht das aber erst mal.

von uwe (Gast)


Lesenswert?

Timer programmiert hab ich schon mit 14 Jahren in der achten Klasse.
Hab ich mir selber beigebracht(natürlich mit Unterstützung von Büchern, 
Internet war da noch nicht so).
Das machst du jetz auch mal so, natürlich mit der hilfe vom Internet.
Wenn du das nicht schaffst hast du auch kein Diplom verdient und ich 
bekomm dich zum Glück nicht als Vorgesetzten.

von Aleksandar J. (Gast)


Lesenswert?

Eine Frage an Dreister Schnösel. Sind die Schritte (in deinem Bsp. 
65535) für jeden PIC anders oder sind es immer 65535 Schritte bei einem 
16-Bit "breiten" PIC?

von Dreister Schnösel (Gast)


Lesenswert?

Aleksandar J. schrieb:
> Sind die Schritte (in deinem Bsp.
> 65535) für jeden PIC anders oder sind es immer 65535 Schritte bei einem
> 16-Bit "breiten" PIC?

2 hoch 16 ist immer 65536. Das ist nicht an einen PIC oder AVR oder
sonstwas für einen Kontroller gebunden.

http://www.hbnweb.de/mathematik/langezahl.html

Das war oben nur ein Vorschlag, es gibt mannigfaltige Methoden, solche
Abläufe zu erzeugen.

Du weißt doch, was für einen Kontroller Du nehmen willst bzw. mußt.
Es steht in dessen Datenblatt, wieviele Timer der hat und auch, wie
die beschaffen sind.

Nimm Dir ein Blatt Papier und male Dir auf, wie die die Sache immer und
immer wieder ablaufen muß.

von Aleksandar J. (Gast)


Lesenswert?

Aleksandar J. schrieb:
> Eine Frage an Dreister Schnösel. Sind die Schritte (in deinem Bsp.
> 65535) für jeden Timer anders oder sind es immer 65535 Schritte bei einem
> 16-Bit "breiten" Timer?

von Aleksandar J. (Gast)


Lesenswert?

Dreister Schnösel schrieb:

> Du weißt doch, was für einen Kontroller Du nehmen willst bzw. mußt.
> Es steht in dessen Datenblatt, wieviele Timer der hat und auch, wie
> die beschaffen sind.


Ich verwende den PIC15f2520 und der hat 4 Timer (Timer0 bis Timer3). In 
meinem fall müsste ich den Timer0 verwenden weil ich ihn mit dem befehl 
"T08BIT = 0" auf 16bit konfigurieren kann.

von Dreister Schnösel (Gast)


Lesenswert?

Ja, jetzt kommt das Problem: Ich kann über Details der PICs nichts 
sagen, weil ich ausschließlich mit AVR zu Gange bin.

Aleksandar J. schrieb:
> Ich verwende den PIC15f2520 und der hat 4 Timer (Timer0 bis Timer3). In
> meinem fall müsste ich den Timer0 verwenden weil ich ihn mit dem befehl
> "T08BIT = 0" auf 16bit konfigurieren kann.

Ja, wenn das so ist, dann bist Du ja schon einen Schritt weiter als 
vorhin.

von Aleksandar J. (Gast)


Lesenswert?

Dreister Schnösel schrieb:
> Ja, jetzt kommt das Problem: Ich kann über Details der PICs nichts
> sagen, weil ich ausschließlich mit AVR zu Gange bin.

  Kein problem, ich danke dir trotzdem für den ansatz. Den rest werde 
ich schon schaffen sobal ich genau weiß wie man die schritte aufteilt.


> Ja, wenn das so ist, dann bist Du ja schon einen Schritt weiter als
> vorhin.
 In der tat :)

von Aleksandar J. (Gast)


Lesenswert?

In einem Punkt bräuchte ich noch einen Tipp :D ich verwende ja den 
PIC18f2520, und mein problem ist, dass er den Befehl "ANSEL" nicht 
erkennt. Ich habe versucht das Problem hiermit "#include <pic18f2520>" 
zu beheben, bin jedoch gescheitert. Wisst ihr vielleicht woran das 
liegen könnte? Habe auch lange im Datenblatt gesucht bin jedoch nichts 
gefunden was mir weiter heöfen könnte.

von Peter C. (peter_c49)


Lesenswert?

schau mal in das Datenblatt, section AD wandler.
das ADC Register ADCON1 hat die bits PCFG3:PCFG0: A/D Port Configuration 
Control bits.
Page 266 hat die Tabelle.
Syntax mit XC8 wäre ADCON1bits.PCFG = 0b0011
mit denen kannst du Analog bzw Digital für die Pins einstellen.
ANSEL war für die alten 16er typen, imo.

von Aleksandar J. (Gast)


Lesenswert?

Peter C. schrieb:
> schau mal in das Datenblatt, section AD wandler.
> das ADC Register ADCON1 hat die bits PCFG3:PCFG0: A/D Port Configuration
> Control bits.
> Page 266 hat die Tabelle.
> Syntax mit XC8 wäre ADCON1bits.PCFG = 0b0011
> mit denen kannst du Analog bzw Digital für die Pins einstellen.
> ANSEL war für die alten 16er typen, imo.

Super, ich danke dir. Wir morgen gleich ausprobiert.

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.