реклама на сайте
подробности

 
 
> MSP430F2618 и SPI
IBRO25
сообщение Oct 28 2011, 16:32
Сообщение #1





Группа: Новичок
Сообщений: 6
Регистрация: 28-10-11
Пользователь №: 68 021



Здравствуйте товарищи!!! возникла проблемка с SPI (вроде ничего сложного в интерфейсе, но всё же)... написал код:
Код
#include  "msp430f2618.h"
#include <stdio.h>
#include <math.h>

unsigned char MST_Data,SLV_Data;

void main(void)
{
  volatile unsigned int i;

  WDTCTL = WDTPW+WDTHOLD;                   // Stop watchdog timer
  if (CALBC1_1MHZ ==0xFF || CALDCO_1MHZ == 0xFF)                                    
  {  
    while(1);                              
                                          
  }    
  BCSCTL1 = CALBC1_1MHZ;                    
  DCOCTL = CALDCO_1MHZ;
  for(i=2100;i>0;i--);                    

  
  P3SEL = 0x3E;                            // порты и вторые ф-ции:SPI-B0 и UART
  P3DIR = 0x5B;                            // SPI-B0 & UART-A1 выбрано в соответствии с направлениями
  P3OUT = 0x31;                               // в соответствии

  UCB0CTL0 |= UCMSB+UCMST+UCSYNC;           // для ЦАП, по заднему и вниз, Mode_1  
  UCB0CTL1 |= UCSSEL_2;                     // SMCLK
  UCB0BR0 = 0x01;                           // /2
  UCB0BR1 = 0;                              //
  UCB0CTL1 &= ~UCSWRST;                     // **Initialize USCI state machine**
  IE2 |= UCB0RXIE;                        

  for(i=50;i>0;i--);                        

  MST_Data = 0x001;                        
  SLV_Data = 0x000;                      

  UCB0TXBUF = MST_Data;                    

  _BIS_SR(LPM0_bits + GIE);                


while(1)
{
  volatile unsigned int i;
  for (i=0xFFFF; i>0; i--);
  while (!(IFG2 & UCB0TXIFG));
  P3OUT &= -0x01;
  P3OUT |= 0x01;
  UCB0TXBUF = UCB0RXBUF;
}
}


вроде компилится, ошибок никаких... но к сожалению, данные не пересылает... пытаюсь разобраться... и дописать очистку мастерского буфера... подскажите, что не так и что я неправильно делаю? и... ещё вопросик: "если у меня приходят сигналы с двух различных источников в проц, как сделать флаги на эти сигналы на выход (чтобы понять, где первый сигнал, а где второй)?"

P.S. видел код по SPI для MSP430F149... но со своим кодом хотелось бы разобраться...

заранее благодарю за все советы и за всю полезную информацию...

Сообщение отредактировал IBRO25 - Oct 28 2011, 16:32
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
IBRO25
сообщение Oct 31 2011, 22:19
Сообщение #2





Группа: Новичок
Сообщений: 6
Регистрация: 28-10-11
Пользователь №: 68 021



Доброго времени суток!! появился ещё параллельный вопрос: "#define X BITY - Привязывание указателя X к входу\выходу P1.Y", а как привязать указатель к выходу P2.Y?

просто у меня по схеме 2 кнопки повешены на p2.6 и p2.7... можно ли так объявить: #define Button1 P2CA6

хотя посмотрел msp430.h, а там есть только P2CA1-P2CA4...

мммм... понял... p2.6 и p2.7 определены битами P2SEL6 и P2SEL7... ТАК?

правильно написал обработчик нажатия на кнопки??

Код
#include "io430.h"

#define Button1 P2SEL6 //тут объявляем кнопку Button1 на вход p2.6
#define Button2 P2SEL7 //тут объявляем кнопку Button2 на вход p2.7

int main( void )
{
  // Stop watchdog timer to prevent time out reset
  WDTCTL = WDTPW + WDTHOLD;
    if ((P2IN== Button1)&&(P2IN != Button2)) //если состояние кнопки 1 изменено тогда будет работать
    {
         Func1();
    }
    
    
        if ((P2IN == Button2)&&(P2IN != Button1)) //если состояние кнопки 2 изменено тогда будет работать
    {
         Func2();
    }

  return 0;
}


неправильно(((( блин...

нашёл кое-чё...

Код
void BUTTON()
{
      P2SEL = 0x00;                             // все - порты =0
      P2DIR = 0xBF;                             // все на вывод кроме 6 бита    
      P2OUT = 0xCC;                             // исходно:                    
}
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th July 2025 - 15:01
Рейтинг@Mail.ru


Страница сгенерированна за 0.01905 секунд с 7
ELECTRONIX ©2004-2016