Forum: Mikrocontroller und Digitale Elektronik Compiler geht nicht weiter bei Clockauswahl | MSP430


von Jo T. (trilli)


Lesenswert?

#include <msp430fr5739.h>

void main(void)
{

  WDTCTL = WDTPW + WDTHOLD;

  P1DIR |= BIT0;    //P1.0 zu OUTPUT
  P1SEL0 |= BIT0;    //TimerA wählen

  CSCTL1 |= 0x06; //DCO 8MHz CLOCK
  CSCTL2 |= SELS__DCOCLK; //DCOCLK FOR SMCLK
  CSCTL3 |= DIVS__8; // DIV 8 TO GET 1MHz
}

Hallo Leute,
wollte bisschen PWM mit dem MSP430FR5739 machen, hatte mir dazu ein 
Codebeispiel rausgesucht. Jetzt wollte ich aber ganz gerne 1MHz haben. 
Wollte das über den DCO machen, 8MHz, dann runterteilen auf 1MHz und 
dann für SMCLK zuweisen.
Hab dann einfach mal kompliliert, bei der ersten Operation mit dem 
Clockregister geht er nicht mehr weiter. Verstehe aber nicht, warum es 
nicht funktioniert, eigentlich müsste es doch gehen oder nicht?!

Habe früher relativ viel mit dem MSP gemacht aber nach einem Jahr ohne 
was zu tun, vergisst man so einiges.

Bin für jede Hilfe dankbar!

von Marc (Gast)


Lesenswert?

Wenn du Hilfe willst, dann schreib verständlich.

Compiler "gehen nicht weiter". Sie übersetzen Quellcode.

Was machst du, was erwartest du, was passiert stattdessen?

von Jo T. (trilli)


Lesenswert?

Also, ich bin den Code mal schrittweise im Debugger durchgegangen
Bei der Zeile "CSCTL1 |= 0x06;" bleibt dannb der Debugger stehen. Ich 
hätte erwartet, dass er denm Befehl ganz normal ausführt und dann weiter 
zur nächsten Zeile springt, macht er aber nicht. Er bleibt dann bei der 
Zeile stehen und es tut sich nichts mehr.
Muss ich vorher vll. noch was anderes machen, bevor ich die Clocks 
verändern kann?

von Jim M. (turboj)


Lesenswert?

Jo T. schrieb:
> Hab dann einfach mal kompliliert, bei der ersten Operation mit dem
> Clockregister geht er nicht mehr weiter.

Wundert mich nicht, Clockregister sind gerne mal besonders gesichert um 
versehentliches Beschreiben bei Fehlen zu verhindern.

Kapitel 3.4 im Family Users's Guide beschreibt Dir genau was zu tun ist, 
z.B.
der Schreibzugriff muss erst in CSCTL0 freigeschaltet werden.

von Jo T. (trilli)


Lesenswert?

Danke es klappt.
Ich hatte es schon vorher probiert mit dem CSKEY, hatte aber anstand 
=CSKEY
|=CSKEY benutzt. jetzt klappt es aber, danke!!!

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.