Forum: Mikrocontroller und Digitale Elektronik Wecker fuer MSP430F149


von Klaus H. (Firma: numberone) (techfreak)


Lesenswert?

Hallo zusammen,
ich habe im Internet sehr lange gesucht aber keine Antworten gefunden, 
ich hoffe ihr könnt mir bei meinem Projekt helfen.

Ich muss für mein Projekt einen Wecker programmieren mit dem MSP430F149 
Board habe aber keine Ahnung wie ich das mache.


Hab bis jetzt nur den Interrupt eingestellt der jede Sekunde läuft und 
den Pragma Vector, ich weiß aber nicht wie ich jetzt weitermachen soll. 
Ich hoffe ihr habt da ein bisschen Codebeispiele für mich

Projekt:
Einen Wecker programmieren den man stellen kann und es am Display 
ausgeben

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Klaus Hunkelmann schrieb:
> Ich hoffe ihr habt da ein bisschen Codebeispiele für mich

Vor Codebeispielen kommen Überlegungen.

Und die sind in Deinem Fall so grundlegend, daß es gar nicht auf den 
verwendeten Controller ankommt.

Du musst Dein Projekt in mehrere Teile zerlegen.

Ein Teil beispielsweise ist das Ansteuern eines Displays, ein darauf 
aufbauender das Ausgeben einer Zeitinformation auf diesem Display.

Ein weiterer Teil ist dann das interruptgesteuerte Aktualisieren einer 
Zeitinformation, und zu guter Letzt willst Du Deine Uhr/Deinen Wecker 
auch noch stellen können.

Also brauchst Du noch Funktionen zur Ansteuerung von Bedienelementen, 
und da das ganze ein Wecker werden soll, auch zur Ansteuerung von etwas, 
was Krach macht.


Das ganze kannst Du --bis auf die ganz hardwarenahen Dinge-- erst mal 
mit Papier und Stift aufmalen. Struktogramme sind da gar nicht so 
unpraktisch, wie Du sicherlich schon in Deinem Unterricht/Deiner 
Lehrveranstaltung gelernt haben solltest.

Und dann kommen die hardwarespezifischen Dinge ins Spiel.

Warum aber verwendest Du so einen steinalten MSP430-Vertreter wie den 
'F149?

von Klaus H. (Firma: numberone) (techfreak)


Lesenswert?

Das ist ein Schulprojekt und wir müssen den MSP430F149 verwenden, 
normale Ausgaben am Display kann ich ja ausgeben aber ich weiß nur nicht 
wie ich das mit dem Wecker hinbekommen soll.

Und ja die Programmiersprache ist C

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Naja, ich habe Dir ja schon ein paar Hinweise gegeben.

Setz Dich hin, und überlege. Kein Programm schreiben, sondern ein 
Struktogramm, oder ein Flussdiagramm, oder was auch immer Dir hilft, 
Deine Gedanken zu sortieren.

Wenn das zu kompliziert erscheint: Überleg' einfach mal, was ein Wecker 
macht.

Und schreib Dir das in Stichpunkten auf.

Stell Dir vor, Du müsstest jemandem, der nicht weiß, was eine Uhr ist, 
beschreiben, wie eine Digitaluhr funktioniert, und stell Dir dann vor, 
Du müsstest demjenigen auch noch beschreiben, wie ein Wecker 
funktioniert.

von Wissenwollender (Gast)


Lesenswert?

Hier ist alles was Du brauchst. Auch der Code. Viel Spass beim 
Hausaufgaben machen :)

http://www.43oh.com/2010/08/an-msp430-based-clock/

von Klaus H. (Firma: numberone) (techfreak)


Lesenswert?

Ich check das nicht :/

von troll (Gast)


Lesenswert?

Wissenwollender schrieb:
> http://www.43oh.com/2010/08/an-msp430-based-clock/
Da ist aber kein Quellcode dabei...

Klaus Hunkelmann schrieb:
> Ich check das nicht :/
Stell konkrete Fragen und zeige dass du dich mit der Materie 
beschäftigt hast, dann wird dir geholfen. Deine Hausaufgaben wird hier 
keiner machen. Rufus hat genug Tipps gegeben.

von Karl H. (kbuchegg)


Lesenswert?

Klaus Hunkelmann schrieb:
> Ich check das nicht :/

Was checkst du nicht?

> Hab bis jetzt nur den Interrupt eingestellt der jede Sekunde läuft
> und den Pragma Vector, ich weiß aber nicht wie ich jetzt weitermachen
> soll.

Vor den Wecker haben die Götter die 'Uhr' gestellt. Also wird ja wohl 
das dein erstes Zeil sein. Pfeif erst mal auf alles andere, wie Wecker 
oder Eingabe bzw. Uhr stellen. Sieh einfach nur mal zu, dass du aus 
deiner '1 Sekude' eine Uhr machst, die du dann auch tatsächlich an 
deinem Display laufen siehst.

Das ist dein erstes Ziel!

Alles andere kommt später.

In Etappen arbeiten. Du siehst momentan nur einen Wecker mit allen 
möglichen Features vor deinem geistigen Auge und diese 'VIelfalt' raubt 
dir die Courage.
Aber das muss nicht sein! Teil dir dein Projekt in Abschnitte ein. Um 
einen Wecker zu bauen, brauchst du erst mal eine laufende Uhr. Um eine 
Uhr prinzipiell zum laufen zu bringen brauchst du erst mal keine 
Eingaben.
Also ist das dein erstes Ziel: Die Uhr muss laufen.
Dann überlegt man sich ein Bedienkonzept, wie man die Uhr stellen 
könnte. Anleihen an im Haushalt befindlichen Digitaluhren zu nehmen, ist 
da nicht schlecht. Wieviele Tasten bzw. Knöpfe haben die? Wie werden sie 
eingesetzt?
Läuft die Uhr und kann man sie auch stellen, ... erst dann wird der 
Wecker das erste mal interessant.
Was macht denn ein Wecker? Er gibt zu einer bestimmten Uhrzeit laut. Er 
klingelt um 7:00, weil die interne Uhr des Weckers, die die ganze Zeit 
dahintickt, mit der eingestellten Weckzeit von 7:00 übereinstimmt.

Aber das ist alles noch Zukunftsmusik. Erst mal brauchst du eine 
hundsordinäre Uhr. Und wie die funktioniert, wenn du einen 
1-Sekundenanstoss hast - na das wirst du ja doch wohl wissen!

Setz dich hin und überlege, wie die Einzelteile zusammenspielen könnten. 
Erst mal nur für eine Uhr. Grundgedanke: Du hast eine Funktion, die 
automatisch alle 1 Sekunde aufgerufen wird. Wie machst du daraus eine 
24-Stunden Uhr. Weiterer Grundgedanke: das Hochzählen der Uhr kann ruhig 
in diese Interrupt Funktion. Aber die Ausgabe nicht. Ausgaben gehören da 
nicht hinein. Wie können daher diese beiden groben Teile - 'Uhrwerk' und 
'Ausgabe' - zusammenspielen? Ignorier erst mal alles andere und sieh zu, 
dass du dafür eine vernünftige Lösung kriegst.

von Klaus H. (Firma: numberone) (techfreak)


Angehängte Dateien:

Lesenswert?

Bis jetzt habe ich nur diesen Teil, ich habe kaum Erfahrung wie man an 
einem MSP programmiert, deswegen die Frage: hat keiner Code-Beispiele 
für mich!

Ich weiß nicht wie ich damit anfangen soll..
Der Interrupt ist jetzt, denk ich mal, soweit fertig, nur die 
Programmierung des Weckers weiß ich nicht und Internet hilft auch nicht 
weiter, deswegen bin ich hier im Forum.

von Eumel (Gast)


Lesenswert?

Klaus Hunkelmann schrieb:
> hat keiner Code-Beispiele
> für mich!

TI hat tausende für dich.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Klaus Hunkelmann schrieb:
> hat keiner Code-Beispiele für mich!

Du brauchst keine Code-Beispiele. Du musst Dir erstmal darüber 
klarwerden, wie Du Deine Problemstellung lösen kannst.

Wenn Du ein Haus bauen möchtest, brauchst Du auch zuerst ein Grundstück 
mit einem Fundament drauf, bevor Du Dir Gedanken über die Farbe des 
Sofas machst, das im Wohnzimmer stehen soll.

von Martin H. (marrtn)


Lesenswert?

Klaus Hunkelmann schrieb:
> Der Interrupt ist jetzt, denk ich mal, soweit fertig, nur die
> Programmierung des Weckers weiß ich nicht und Internet hilft auch nicht
> weiter, deswegen bin ich hier im Forum.

Das schaut ja schon mal ganz gut aus...
Wecker heißt: Lärm machen, wenn aktuelle Uhrzeit == Weckzeit
Also Bestandteile der Uhrzeit mit den Bestandteilen der Weckzeit 
vergleichen. Wenn alles gleich ist, Alarm starten bis ein Taster 
gedrückt wird.
Ich würde das aber nicht im Interrupt machen.

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.