freudi93
Ensign
- Registriert
- Jan. 2010
- Beiträge
- 130
Guten Abend
Ich suche eine Delay oder warte befehl für C, welcher ein msp 430 Microcontroller erkennt.
Ich möchte gerne auf der Chronos TI ez 430 ein h ausgeben, welche sich aber nach ca 3 sec in ein r endern soll. mein derzeitiger lösungsansatz wäre (funktioniert aber leider nicht so wie ich will):
#include "cc430x613x.h"
#include <string.h>
void main(void)
{
unsigned char * lcdmem;
// Löschen des Displays
LCDBMEMCTL |= LCDCLRBM + LCDCLRM;
// LCD_FREQ = ACLK/16/8 = 256Hz
// Frame frequency = 256Hz/4 = 64Hz, LCD mux 4, LCD on
LCDBCTL0 = (LCDDIV0 + LCDDIV1 + LCDDIV2 + LCDDIV3) | (LCDPRE0 + LCDPRE1) | LCD4MUX | LCDON;
// LCB_BLK_FREQ = ACLK/8/4096 = 1Hz
LCDBBLKCTL = LCDBLKPRE0 | LCDBLKPRE1 | LCDBLKDIV0 | LCDBLKDIV1 | LCDBLKDIV2 | LCDBLKMOD0;
// I/O zu COM Ausgabe
P5SEL |= (BIT5 | BIT6 | BIT7);
P5DIR |= (BIT5 | BIT6 | BIT7);
// Aktivieren der LCD ausgabe
LCDBPCTL0 = 0xFFFF; // Select LCD segments S0-S15
LCDBPCTL1 = 0x00FF; // Select LCD segments S16-S22
lcdmem = (unsigned char *)0x0A21;
*lcdmem = (unsigned char)(*lcdmem | (BIT2+BIT1+BIT6+BIT0));
__delay_cycles (10000);
lcdmem = (unsigned char *)0x0A2B;
*lcdmem = (unsigned char)(*lcdmem | (BIT4+BIT5+BIT6+BIT0+BIT3));
}
Ich suche eine Delay oder warte befehl für C, welcher ein msp 430 Microcontroller erkennt.
Ich möchte gerne auf der Chronos TI ez 430 ein h ausgeben, welche sich aber nach ca 3 sec in ein r endern soll. mein derzeitiger lösungsansatz wäre (funktioniert aber leider nicht so wie ich will):
#include "cc430x613x.h"
#include <string.h>
void main(void)
{
unsigned char * lcdmem;
// Löschen des Displays
LCDBMEMCTL |= LCDCLRBM + LCDCLRM;
// LCD_FREQ = ACLK/16/8 = 256Hz
// Frame frequency = 256Hz/4 = 64Hz, LCD mux 4, LCD on
LCDBCTL0 = (LCDDIV0 + LCDDIV1 + LCDDIV2 + LCDDIV3) | (LCDPRE0 + LCDPRE1) | LCD4MUX | LCDON;
// LCB_BLK_FREQ = ACLK/8/4096 = 1Hz
LCDBBLKCTL = LCDBLKPRE0 | LCDBLKPRE1 | LCDBLKDIV0 | LCDBLKDIV1 | LCDBLKDIV2 | LCDBLKMOD0;
// I/O zu COM Ausgabe
P5SEL |= (BIT5 | BIT6 | BIT7);
P5DIR |= (BIT5 | BIT6 | BIT7);
// Aktivieren der LCD ausgabe
LCDBPCTL0 = 0xFFFF; // Select LCD segments S0-S15
LCDBPCTL1 = 0x00FF; // Select LCD segments S16-S22
lcdmem = (unsigned char *)0x0A21;
*lcdmem = (unsigned char)(*lcdmem | (BIT2+BIT1+BIT6+BIT0));
__delay_cycles (10000);
lcdmem = (unsigned char *)0x0A2B;
*lcdmem = (unsigned char)(*lcdmem | (BIT4+BIT5+BIT6+BIT0+BIT3));
}