iam trying to interface MAX7219 with msp430 g2231 by SPI protocol
i tried with this code but its not working can you help me..
this is my code..
#include
<msp430g2231.h>
#define
SDP8_LOAD BIT6 // PORTB.1
void
spi(unsigned char cData)
{
/* Start transmission */
USISRL = cData;
/* Wait for transmission complete */
while
(!(USISRL & (1<<USIIFG)))
;
}
void
sdp8(unsigned char posn, unsigned char val)
{
P1OUT &= ~SDP8_LOAD;
// enable SPI
spi(posn);
spi(val);
P1OUT |= SDP8_LOAD;
// latch the data on rising edge
}
void
initsdp8(void)
{
sdp8(0x0A, 0x07);
/* high intensity */
sdp8(0x0B, 0x07);
/* scan limit set to digit 0 only, 0x07 for all digits*/
sdp8(0x09, 0xFF);
/* no decode (FF for decode all digits)*/
sdp8(0x0C, 0x01);
/* not shutdown */
//sdp8(0x0F, 0x01); /* start test*/
//_delay_ms(2000);
sdp8(0x0F, 0x00);
/* stop test*/
}
void
main(void)
{
volatile unsigned int i;
WDTCTL = WDTPW + WDTHOLD;
// Stop WDT
P1OUT = 0;
P1OUT |= SDP8_LOAD;
P1DIR |= SDP8_LOAD;
USICTL0 |= USIPE7 + USIPE6 + USIPE5 + USIMST + USIOE + USILSB;
// Port, SPI Master
USICTL1 |= USIIE;
// Counter interrupt, flag remains set
USICKCTL = USIDIV_4 + USISSEL_2;
// /16 SMCLK
USICTL &= ~USISWRST;
// USI released for operation
//for (i = 0xFFF; i > 0; i--); // Time for slave to ready
USICNT = 8;
initsdp8();
while (1)
{
//sdp8(0x01, 0x01);
sdp8(0x01, 0x01);
sdp8(0x02, 0x02);
sdp8(0x03, 0x03);
sdp8(0x04, 0x04);
sdp8(0x05, 0x05);
sdp8(0x06, 0x06);
sdp8(0x07, 0x09);
//sdp8(0x08, 0x08);
}
}
thanks a lot...