MSP430F149 Flashwrite

OP #733449
Lesenswert?
• ▲
▼
Hallo,

weiß jemand wie ich in das Infosegment A einen Wert schreiben kann? 
Folgenes Listing zeigt wie ichs machen will, sieht jemand den Fehler?
  Flash_ptr = (char *) 0x1080;        // Initialize Flash pointer
  while(FCTL3 & BUSY);
  FCTL2 = FWKEY + FSSEL_1 + FN0;      // MCLK/2 for Flash Timing 
Generator
  FCTL3 = FWKEY;                      // Clear Lock bit
  FCTL1 = FWKEY + WRT;                // Set WRT bit for write operation
  P5OUT |=0x01;
  *Flash_ptr = 0x33;                  // Write value to flash
  while(FCTL3 & BUSY);
  P5OUT &=~0x01;
  FCTL1 = FWKEY;                      // Clear WRT bit
  FCTL3 = FWKEY + LOCK;               // Set LOCK bit

Am Port5.4 messe ich einen MCLK von 714kHz

Gruß
Gerhard
#733516
Lesenswert?
• ▲
▼
Das hier klappt auf dem F1611 wunderbar:
1
unsigned char WriteInfoMemA(unsigned int *Data, unsigned char NumWords)
2
{
3
  if(NumWords < 129)
4
  {
5
    _DINT();
6
    WDTCTL = WDTPW + WDTHOLD;                       // Stop watchdog timer
7
      FCTL2 = FWKEY + FSSEL_SMCLK + FN1 + FN3;      // SMCLK/10 for Flash Timing Generator -> ~ 400Khz
8
    unsigned int *FlashPtr;
9
    unsigned char i;
10
    FlashPtr = (unsigned int*)0x1080;
11
    FCTL1 = FWKEY + ERASE;                    // Set Erase bit
12
      FCTL3 = FWKEY;                            // Clear Lock bit
13
      *FlashPtr = 0;                           // Dummy write to erase Flash segment
14
    FCTL1 = FWKEY + WRT;                      // Set WRT bit for write operation
15
    
16
    for (i=0; i<NumWords; i++)
17
      {
18
        *FlashPtr++ = *Data++;                   // Write value to flash
19
      }
20
  
21
      FCTL1 = FWKEY;                            // Clear WRT bit
22
      FCTL3 = FWKEY + LOCK;                     // Set LOCK bit
23
    _EINT();
24
    return i+1;
25
  }
26
  else return 0;
27
}
Mein SMCLK läuft mit 4,096MHz.

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.