Перейти к содержанию
    

CAHTA_1939

Участник
  • Постов

    143
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные CAHTA_1939


  1. насчет программатора. у меня MSP430-JTAG-TINY, доволен вполне. он мне достался почти что на халяву. пробили в магазине как обычный MSP430-JTAG(LPT) :lol: :08: :08: :rolleyes:

     

    я его недавно разобрал, тоже думал копирнуть, но... там стоит F169 и еще несколько корпусов микросхем. если нужно, могу поискать фотографии внутренностей.

  2. За доставку платит отправитель.

     

    микрухи выбрал, но вот что у меня сомнения вызываеет

     

    The destination country requires import duties to be paid on delivery by the receiver. TI can not pay the import duties for the shipment. If the recipient is not willing to accept the charge, then do not enter this sample request."

     

    забить? или как? платить то не хочется =)

  3. а то что я сам по себе? т.е. официально не работаю нигде... мне они дойдут?

     

    шас попробую заказать штучки 4 =) как раз через месяц нужно новый макет делать =)

     

    и вот еше. за доставку платить нужно, или это ваааше ПОЛНАЯ халява такая?

  4. Решил я поработать с микроконтроллерами MSP430.

    Заказал образцы у TI, через неделю они уже лежали на моем столе, чем я был немало удивлен. Конкретно пришли чипы M430F1232 и M430F1612.

     

    извините за ОФФТОП, но! как понять "Заказал образцы у TI" ?

    как и сколько стоило?

  5. помогите. возникла проблема при выделении динамической памяти под структуру.

     

    вот сама структура

    struct sMENU_WIN  {
                          byte **labelname;            // строка меню.
                          byte i_labelname;            // длина labelname.
                          bit  f_flag;                 // поддержка флага.
                          bit  flag;                   // состояние флага.
                          bit  f_goto;                 // поддержка перехода.
                          byte ptr_fgoto;              // "переход"
                          bit  f_func_exe;
                          byte *ptr_func_exe;
                      };
    
    struct _window_   {
                         struct sMENU_WIN *_win; 
                      };
    
    struct sMENU      {
                         byte PP;                       //
                         byte *stack;                   //
                         byte *stack_1;                 //
                         
                         struct _window_ ss0;           //window#0 
                         struct _window_ ss1;           //window#1
                      };
                        
    struct _window_ *p_window_[2];                      //кол-во окон!
    struct sMENU _menu_;                                //

     

    это я делаю для удобства.

    void ini_p_window(&_menu_);
    
    void ini_p_window(struct sMENU *p)
    {
       p_window_[0] = &p->ss0; // main
       p_window_[1] = &p->ss1; // window 1
    }

     

     

    а вот сама функция для выделения памяти и инициализации

    void ini_struct(&_menu_);
    
    void ini_struct(struct sMENU *ptr)
    {
    
    ...
    
       (*p_window_[0])._win = (struct sMENU_WIN*)malloc(13*sizeof(struct sMENU_WIN));
       
       if((*p_window_[0])._win == NULL){ _puts(1, 0, mem_err); return;}
       else                            { _puts(1, 0, OK); }
    
    ...

     

    при выделении до (6*sizeof(struct sMENU_WIN) все работает нормально. а если больше 6, то возникает ошибка.

     

    если в структуре вместо struct sMENU_WIN *_win; написать struct sMENU_WIN _win[13];

    то все будет работать хорошо. но мне нужно чтобы выделялась динамически

  6. ЧуднО читать такие диагнозы. Вы смотрели .map или вывод дизассемблера в симуляторе, чтобы убедиться, что __low_level_init() у вас вообще попал в прошивку? Насколько я помню по другому вашему посту, вы компилируете в режиме С++. Не буду долго объяснять про изменение имен функций в С++ - захотите, найдете в поисковиках по ключевым словам name mangling и C linkage. В общем объявите __low_level_init() как extern "C" int __low_level_init().

     

     

    билн. спасибо большое =) сеня ман покурю.

  7. т.к. у меня происходит инициализация большой структуры, то для предотврашения зависания мсп я вставил в код

     

    int __low_level_init(void)
    { 
       WDTCTL = WDTPW + WDTHOLD;             //Stop watchdog timer to prevent time out reset
       return (1);
    }

     

    но вот незадача! на первом контроллере у меня все работает хорошо. но когда эту прошивку пишу во втрой, тоже 1611 , наблюдается чтото типа постоянного резера.

     

    а если в main вставить

     

    WDTCTL = WDTPW + WDTHOLD;

     

    то все работает норм... (это пир том что __low_level_init тоже присутствует )

     

     

    контроллеры одинаковые, стоит 8Мгц кварц на обоих. хз. странно это както.

    помогите кто чем сможет =(

  8. всем доброй ночи =)

     

    у меня есть 2шт msp430f1611 соединенные между собой через SPI , и к этомуже SPI подключена память at25f2048... у этой память есть пин CS, т.е. проблемы пнуть микруху, чтоб она поняла что данные для нее, нет. но вот как поступить со вторым 1611 ? если один пин у нее отвести для CS и при вызове прерывания проверять его состояние, то это будет не зер гуд!

     

    подскажите, как лучьше поступить?

  9. нее. это издевательство. пишу const перед переменной. а из логов всеравно видно, что в озу пишется.

    DATA memory увеличивается а CONST остается неизменной.

    и потом. у мен после DATA memory написанно (+ 19 absolute ) , это что такое?

  10. почитал про _low_level_init ... занятно. но вот проблемма! структуру я инициализирую сразу после описания... и в функцию инициализацию не хочу вставлять.

     

    а вот про WDT ....

    вставил в программу до main

    int __low_level_init(void)
    { 
       WDTCTL = WDTPW + WDTHOLD;             //Stop watchdog timer to prevent time out reset
       return (1);
    }

     

    но эффект такойже. с разницей в том, что после прошивки достыпны кнопки запуска программы , пошагового прохода и т.д.

     

    но сама программа не работает =(

    хотя есть данные немного укоротить, то все ок!

     

    насчет const.

     

    у меня структура, в ней есть еше одна. вложенная

     

    struct sMENU_WIN  {
                         byte **labelname;            // строка меню.
                         byte i_labelname;            // длина labelname.
                         bool f_flag;                 // поддержка флага.
                         bool flag;                   // состояние флага.
                         bool f_goto;                 // поддержка перехода.
                         byte ptr_fgoto;              // "переход"
                      };
    
    
    struct _window_   {
    
                       const  struct sMENU_WIN _win[20];
    
                      };

     

    если я сделаю как приведено выше, то при компиляции выдается предупреждение...

     

    Warning[Pe368]: class "_window_" defines no constructor to initialize the following: J:\нии\msp430_progs\Slave\_dialog.h 41 
                const member "_window_::_win"

     

    инициализирую структуру я след способом

     

    struct _window_ _menu_ = { ... }

  11. спасибо за информацию. но всеже у меня просто данные в озу не вмешаются... наверное.

     

    вот то что мне компилятор в мессагах выдал

    Building configuration: main_slave - Debug 
    Updating build tree... 
    
    main.cpp 
    
       IAR MSP430 C/C++ Compiler V3.42A/W32  [Evaluation] 
       Copyright 1996-2006 IAR Systems. All rights reserved.  
      
    2 760 bytes of CODE  memory (+  4 bytes shared) 
    4 211 bytes of CONST memory (+  2 bytes shared) 
    3 956 bytes of DATA  memory (+ 20 bytes shared) 
    
    Errors: none 
    Warnings: none 
    
    Linking 
    
         IAR Universal Linker V4.60C/386 
         Copyright 1987-2006 IAR Systems. All rights reserved. 
    
    3 308 bytes of CODE  memory 
    8 024 bytes of DATA  memory (+ 20 absolute ) 
    4 194 bytes of CONST memory 
    
    Errors: none 
    Warnings: none 
    
    
    Total number of errors: 0 
    Total number of warnings: 0

     

    а структуру я сразу же после описания инициализирую.

     

    теперь у меня забота. как структуру в пзу загнать =(

  12. и вот еше. у меня есть большая структура... точне перы структур со вложенными структурами. я их забиваю данными и компилирую. вот только наступает такой момент, может я просто много записываю, что после прошития контроллера на панельке управления( там где кнопки зупуска программы, остановки и другой фигни =) достыпно только STOP =(

    если я объем данных уменьшу, то все ОК.

     

    вот фиг его знает что такое.

     

    почти все денные у меня типа const. даже и не знаю, чем могло так засориться 10кб озу =(

     

     

    посчитал вручную все байты, которые я сую в структуру. получилось 11.5 -(

     

    хочется эту структуру засунуть в пзу, но... там есть данные которые изменяются по ходу работы программы.

    как лучьше поступить? подскажи те пожалуйста

  13. прошу прошения. забыл написать. да, я использую IAR. сейчас посмотрю...

     

    неа. ничего подобного в сообшениях нет. в других окнах посмотрел - тоже нет. у меня IAR 3,42а

  14. не подскажете, как можно узнать, сколько программа ест ОЗУ?

    а то я сейчас пишу на этом контроллере с граф. индикатором менюшку, и у меня такое ошушение что оператива вот вот кончится.... иногда заливаться не хочет.

  15. Я не очень большой знаток Си, но у меня вызывает сомнение аргумент вызова функции print_arr

    const char (*ptr)[128] это случайно не массив указателей?

     

    это указатель на массив. взял из книжки...

     

    причиной ощибки была Kickstart версия IAR'а ... вот только не пойму, почему 0х1000 byte , ограничение же стоит на 4Кбайта ... странно короче, или я чтото не догоняю...

     

    установил Evaluation версию и трабла ушла =)

  16. У меня тоже ошибка, 2кБ не Flash, а ОЗУ.

    Какая именно у вас версия?

     

    IAR Assembler for MSP430
    V3.42A/W32 (3.42.1.9)
    C:\Program Files\IAR Systems\Embedded Workbench 4.0\430\bin\a430.exe
    07.12.2006 10:18:04, 651264 bytes
    
    IAR C/C++ Compiler for MSP430
    V3.42A/W32 [Kickstart] (3.42.1.3)
    C:\Program Files\IAR Systems\Embedded Workbench 4.0\430\bin\icc430.exe
    07.12.2006 14:39:24, 6164480 bytes

     

     

    если const тоже записывается в ОЗУ, тогда как массивы данных оставить во Флеше? мне их даже изменять то не надо, на то я и const поставил...

×
×
  • Создать...