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

 
 
> Проблемы с инициализацией или еще с чем-то, MSP430F149
addi
сообщение Oct 8 2013, 15:39
Сообщение #1


Знающий
****

Группа: Участник
Сообщений: 679
Регистрация: 9-08-06
Пользователь №: 19 422



Здравствуйте !

Нужна помощь новичку в MSP430.
Не получается выполнить простейшую операцию , думаю проблема в тактировании.
Использую внешний часовой кварц в качестве источника тактирования.

Мой код ниже.
Прошу помочь, кто знает что не так.
Контроллер MSP430F149
Код
#include <stdio.h>
#include "msp430x14x.h"
#include <intrinsics.h>

#include "main.h"

//extern void writeuc_SPI(unsigned char data);
#define iSCO 0x40
#define iSCK 0x20
void main()
{
  init();
  Usets();
  __enable_interrupt();
  for(;;)
  {
    
    P3OUT |= iSCO; // P3.6 MOSI
    P4OUT |= iSCK; // P4.5 MSCK
    //Ureg = 0x55;
    //writeuc_SPI(Ureg);
    //Uucwr(readuc_SPI());
    //Uucwr(0x55);
  
  }
}
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
MrYuran
сообщение Oct 9 2013, 08:59
Сообщение #2


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Телепатирую проблему в init().
Если нет, то в Usets()
sm.gif
Остальное вроде нормально.
Хотя и непонятно, чего вы ожидаете и что не так.


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
addi
сообщение Oct 9 2013, 15:01
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 679
Регистрация: 9-08-06
Пользователь №: 19 422



Цитата(MrYuran @ Oct 9 2013, 12:59) *
Телепатирую проблему в init().
Если нет, то в Usets()
sm.gif
Остальное вроде нормально.
Хотя и непонятно, чего вы ожидаете и что не так.


Спасибо большое за поддержку!

Дело в том что я сделал еще проще:

Код
#include <stdio.h>
//#include <msp430f149.h>
#include <msp430x14x.h>
#include <intrinsics.h>

#include "main.h"

//extern void writeuc_SPI(unsigned char data);

void main(void)
{
  //init();
  WDTCTL = WDTPW + WDTHOLD;  
   P3DIR |= 0x40; // P3.6 MOSI
    P4DIR |= 0x20; // P4.5 MSCK
    P3OUT |= 0x40; // P3.6 MOSI
    P4OUT |= 0x20; // P4.5 MSCK
    //P3OUT &= ~iSCO; // P3.6 MOSI
    //P4OUT &= ~iSCK; // P4.5 MSCK
  //Usets();
  __enable_interrupt();
  for(;;)
  {
    
  
    
    //P3OUT &= ~iSCO; // P3.6 MOSI
    //P4OUT &= ~iSCK; // P4.5 MSCK
    
    //Ureg = 0x55;
    //writeuc_SPI(Ureg);
    //Uucwr(readuc_SPI());
    //Uucwr(0x55);
  
  }
}


Зашиваю Relese через download and debug LPT отладчиком(FET Debugger) смотрю на P3.6 и P4.5 и вижу низкий уровень, когда как должен быть высокий.
Далее через Debug отладку прохожу построчно и ножки соответсвенно устанавливаются в высокий уровень, и только таким образом.
Все оставшиеся манипуляции с Relese/Debug и "download and debug" дают на выходе 0.
Не понимаю что должно тактировать, либо LF, либо внутренний DCO, в итоге такое ощущение что тактирования никакого нет.
32768 покдючен к XIN и XOUT.

Со схемотехникой все ok, ранее была другая прошивка(не моя, я ее стер своими попытками) и все ok.

На входе ножки ресет - высокий уровень, питание есть.
Ничего не понимаю, пожайлуста помогите, хотя бы своей инициализацией или проектом под ИАР.

Заранее благодарен!
Go to the top of the page
 
+Quote Post
igorle
сообщение Oct 9 2013, 16:58
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 338
Регистрация: 14-07-12
Пользователь №: 72 753



Я по существу ответить не могу. Под рукой нет ничего. Но для начала - я бы причесал код. Чтобы было видно, что вы понимаете что делаете. Например, Ваш код насамом деле выглядит так:
Код
#include <msp430x14x.h>

void main(void)
{
    WDTCTL = WDTPW + WDTHOLD;

    P3DIR |= 0x40; // P3.6
    P4DIR |= 0x20; // P4.5
    P3OUT |= 0x40; // P3.6
    P4OUT |= 0x20; // P4.5
    for(;;);
}


Я бы еще проверил значения PxSEL. Возможно, эти ножки по умолчанию не GPIO, а альтернативные. Я, к сожалению, не смог этого понять из даташита.
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Oct 10 2013, 06:06
Сообщение #5


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(igorle @ Oct 9 2013, 19:58) *
Например, Ваш код на самом деле выглядит так:

На самом деле, там ещё __enable_interrupt(); , хотя ни одного обработчика не видно, а иар (а ведь это он), как известно, заглушек не ставит.
Далее, кварц можно ставить какой угодно, он все равно работать не будет, так как по умолчанию тактирование идет от DCO 100кГц.


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
igorle
сообщение Oct 10 2013, 06:58
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 338
Регистрация: 14-07-12
Пользователь №: 72 753



Цитата(MrYuran @ Oct 10 2013, 09:06) *
На самом деле, там ещё __enable_interrupt(); , хотя ни одного обработчика не видно...

Этот вызов никакой смысловой нагрузки не несет. Поэтому я его и предлагал вычистить. Подозреваю, что проблема не в коде, а в окружении. На начальных этапах это сплошь и рядом бывает. Думаешь, что прожег код, а на самом деле загрузил его в эмулятор. Или вообще никуда...
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- addi   Проблемы с инициализацией или еще с чем-то   Oct 8 2013, 15:39
||- - addi   Цитата(igorle @ Oct 9 2013, 20:58) Я по с...   Oct 10 2013, 05:56
||- - addi   Цитата(MrYuran @ Oct 10 2013, 10:06) На с...   Oct 10 2013, 06:16
|- - Сергей Борщ   QUOTE (addi @ Oct 9 2013, 18:01) Зашиваю ...   Oct 10 2013, 07:01
|- - addi   Цитата(Сергей Борщ @ Oct 10 2013, 11:01) ...   Oct 10 2013, 19:46
|- - Сергей Борщ   QUOTE (addi @ Oct 10 2013, 22:46) Проблем...   Oct 10 2013, 20:54
|- - addi   Цитата(Сергей Борщ @ Oct 11 2013, 00:54) ...   Oct 11 2013, 07:00
|- - Сергей Борщ   Рискуете схватить предупреждение за избыточное цит...   Oct 11 2013, 07:50
|- - addi   Цитата(Сергей Борщ @ Oct 11 2013, 11:50) ...   Oct 15 2013, 11:54
- - MrYuran   ЦитатаBCSCTL1 = 0x49; // Максимальная частота, дел...   Oct 15 2013, 12:20
- - addi   Цитата(MrYuran @ Oct 15 2013, 16:20) Дума...   Oct 16 2013, 12:09
- - MrYuran   Цитата(addi @ Oct 16 2013, 15:09) UBR00 =...   Oct 17 2013, 06:18
- - addi   Сапсибо огромное, с UBR00 = 0xEE;UBR10 = 0x01; ско...   Oct 17 2013, 07:36


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

 


RSS Текстовая версия Сейчас: 9th August 2025 - 13:34
Рейтинг@Mail.ru


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