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

Vik25

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

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

  • Посещение

Репутация

0 Обычный

Информация о Vik25

  • Звание
    Участник
    Участник
  1. Да, на работе я вытащил вариант с ошибками. Первая строка должна быть: #include <msp430G2211.h> Строка 18 (в такте 1) должна быть: int timex=620; В приведенном выше коде эти ошибки я исправил. Жму Restart Debugger Затем Go на появившейся панели отладки. ШД делает 10 оборотов и останавливается. Далее не получается повторно запустить. Не помогает RESET на ланчпаде, нет реакции на GO панели отладки IAR. Помогает только повторная Restart Debugger
  2. По поводу текста, который дал. Я сейчас на суточном дежурстве и код дал по варианту, с которым когда-то работал. Завтра дома проверю на макете и скажу о работоспособности конкретного текса. Работу программулины я оцениваю по тому, что происходит с шаговым двигателем – а он все-таки вертится!!! По поводу формирования задержек. Это как раз тот момент, по которому не хочется показывать свой текст. Я не профессионал. Вполне возможно, что написано глупо, но работает. Так что не судите строго за уровень профессионализма. Не понял что это? Если совет, то к каким строкам?
  3. Использую G2211. Проверил на Ланчпаде мультиметром ножку 10 (RST) - нормально. При нажатии - 0 в, отпускаю - 3,5 в. Програмка секретна в том смысле, что неловко показывать подобное, когда вокруг говорят о солидных проектах. Использую IAR. Программка, с которой работаю - зациклена, но ниже привожу вариант на 10 оборотов без цикла. Как я предполагаю: после запуска делает 10 оборотов и останавливается. Хотел бы увидеть, что программка перезапускается после нажатия кнопки сброс. В окончательном варианте программка будет "висячей". Будет три кнопки: влево, стоп, вправо. И в этом варианте будет постоянное ожидание нажатия кнопки. #include <msp430G2211.h> void main(void) //Вариант для двухобмоточного ШД со средней точкой. { WDTCTL = WDTPW + WDTHOLD; //выключаем сторожевой таймер P1DIR |= (BIT0 + BIT1 + BIT2+BIT3); // Установка портов 0-:-3 на вывод P1OUT &= ~(BIT0 + BIT1 + BIT2+BIT3); // Сброс всех фаз int step = 0; while (step < 120)// 1 оборот - 12 циклов { //Такт 1 P1OUT |= BIT0; // включить P1OUT &=~BIT1; // выключить P1OUT &=~BIT2; // выключить P1OUT |= BIT3; // включить int timex=620; while (timex != 0) //пока не уменьшили до нуля { timex--; //скорость } //Такт 2 P1OUT |= BIT0; // включить P1OUT &=~BIT1; // выключить P1OUT |= BIT2; // включить P1OUT &=~BIT3; // выключить timex=620; while (timex != 0) //пока не уменьшили до нуля { timex--; //скорость } //Такт 3 P1OUT &=~BIT0; // выключить P1OUT |= BIT1; // включить P1OUT |= BIT2; // включить P1OUT &=~BIT3; // выключить timex=620; while (timex != 0) //пока не уменьшили до нуля { timex--; //скорость } //Такт 3 P1OUT &=~BIT0; // выключить P1OUT |= BIT1; // включить P1OUT &=~BIT2; // выключить P1OUT |= BIT3; // включить timex=620; while (timex != 0) //пока не уменьшили до нуля { timex--; //скорость } step ++; } P1OUT &= ~(BIT0 + BIT1 + BIT2+BIT3); // Сброс всех фаз } Странное форматирование кода. Привести к формату текста сообщения не получилось.
  4. Спасибо за советы, особенно в личке. Получил немало информации для чтения мануалов. Не капризна ли Ланчпад к подключению осциллографа или мультиметра? Не грохну Ланчпад? По поводу моей ситуации я понял, что надо сделать свою платочку с панелькой, куда переставлю микросхему. Посмотрю какая будет реакция на сброс. Насколько я понимаю, в обвязке должно быть питание 3,7 в, от ножки сброса 47 к на питание и кнопку об землю.
  5. До своей платы пока не дорос, пользуюсь Ланчпадом, никаких перепаек на ней не делал. Инициализации стека в программе нет. Программа линейная, без подпрограмм. Разница между моей и мигалкой в том, что мигалка работает в бесконечном цикле, а моя делает один проход и мне хотелось бы чтобы она повторялась с начала по нажатию Reset. Но этого не происходит. Сторожевой таймер в начале программы выключается. Пункт 4 для меня сложноват, но попробую осмыслить. Тип микросхемы в IAR указан правильно. Самодельной платы, как уже сказал, пока нет. Из всех советов пока делаю вывод: сосредоточиться и осмыслить происходящее при помощи п. 4 от controller_m30
  6. Не буду затевать новую тему, мой вопрос похожий. Я из категории любителей, использующих MSP430G2 для "бытовых" целей. Естественно, что начинал со светодиодов. Сейчас сделал программку управления шаговым двигателем. Формирую временную диаграмму двигателя. За "один проход" программа должна сделать 1000 оборотов и останавиться. Предполагал, что после нажатия RESET программа будет повторно запускаться, делая 1000 оборотов. Но ничего не получается. Чтобы снова заработало, надо опять делать DEBUG и запуск. Если подать питание на LaunchPad, то запуска программы не происходит, не помогает и кнопка сброса. Зато программы, в которых бесконечный цикл (зависание), те же светодиоды, при подаче питания начинают работать. Можно попробовать сделать бесконечный цикл для ожидания нажатия кнопки, подключенной к одному из портов, но хотелось бы понять как использовать сброс. Почитал про работу сброса и возникла пара вопросов. Надо ли программно конфигурировать вход RST, чтобы была реакция на нажатие кнопки сброса или это предопределенная установка. Судя по описанию, после сброса управление передается по адресу, находящемуся в векторе 0FFFEh. Если я программно не определял этот вектор, куда передается управление? Передастся ли на начало моей программы?
  7. Я так понимаю, идет развод на амбиции, но это не для меня, я себе цену знаю. Именно поэтому я не стесьняюсь здесь говорить о том, что мне непонятно в конкретном компиляторе. Я уже говорил, что приходилось программировать для PDP-11 и с тех пор пауз в программировании не было. Чтобы не было ля-ля с вашей стороны, я привел название книги, которая есть под рукой. Дайте номер страницы, где были бы комбинации операторов |= или &=. Нет там такого. Я рад, что вы освоили компилятор IAR с его спецификой и могли бы вместо амбиций и старческого брюзжания дать ссылку на описание СИ для IAR. В комплекте документации IAR я такого не нашел. Еще раз скажу, что если вы заявляете, что приведенные комбинации операторов свойственны С, то это говорит о том, что вы знаете только конкретную модификацию, осваивали С по фирменным образцам, но не С в классическом виде.
  8. Что значит подставться? Я за себя спокоен, а перед снобами и поподставляться не грех - забавляет. Мне важно суть понять. В книги залезаю изредка, а С мне преподавали в одной из контор Рязани. Вот влез в учебник С++ Kris Jamsa. Подобных конструкций там не нашел И вопрос по существу. Эти две конструкции допустимы: LED_OUT &= ~(LED_0 + LED_1) LED_OUT =& ~(LED_0 + LED_1)
  9. Что же вы так за слова цепляетесь. Мне что, полстраницы тратить на то, что вы компилятор IAR назвали транслятором? Не буду на это отвлекаться. Я сказал не о нестандартных операторах а о каком-то нестандартном их применении, о нестандартных комбинациях. И даже привел пример. Меня всегда учили делать программу наглядной и легко читаемой. Такого не видел. Это эквивалент a = a & b ? Если да, то он менее нагляден. Зачем так писать? Код экономится или причина другая? Xenia, у меня вопрос не о механизме управления портам, вопрос о синтаксисе языка С IAR. Правильно ли я понимаю, что конструкцию LED_OUT &= ~(LED_0 + LED_1) Можно записать как: LED_OUT = LED_OUT & ~(LED_0 + LED_1) Аналогично побитовое включающее ИЛИ: LED_OUT |= LED_0 Можно записать: LED_OUT = LED_OUT | LED_0
  10. А что там в Простоквашино? По поводу зарезервированных слов можно море копий сломать, но это не принципиально, поскольку суть сказанного меня поняли и помогли. По поводу 13 листов. Для налоговой могу напечатать шрифтом 5 пунктов. Для себя и в деловой переписке использую Times, 12 пунктов, одинарный межстрочный. Не знаю, утвержденный ли это стандарт, но пользуются многие. Именно в этом стандарте 13 листов. Но вот поднял документацию на IAR, получилось что эти 13 листов сущие пустяки. По поводу программирования. Скарябал на ассемблере для Электроники 60, а это PDP-11 DEC. Для нее же писал на кроссассемблере разработки Протвино. Но пока позволят ресурсы, хочу попрактиковать на С. На нем тоже писал, но тут начались непонятки. Я понимаю вот такую конструкцию: a = b & c Но не могу понять строки из примера с моргающим диодом: LED_OUT &= ~(LED_0 + LED_1) Описание С нашел в EW430_CompilerReference.pdf. Там много интересного, но нет описания операторов применительно к IAR.
  11. Спасибо, нашел. Там дефиниций на 13 листов вордовского текста.
  12. По поводу зарезервированных слов. Си имеет такие слова, но их (зарезервированные слова) должны иметь и файлы, которые дают понять IAR тип устройства, с которым он работает. Слово А резервирует программист, а специфичные слова для конкретного устройства резервируются каким-то другим файлом и для пользователя уже нет разницы на каком уровне произошло резервирование. Подозреваю, что в моем случае это msp430g2231.h. Чей он? Ведь его я получил с IAR. Сам изобретать имена для ресурсов микроконтроллера не хочу, иначе трудно будет читать чужие программы. Документации слишком много. Это и сайт TI, и документы в директории установленной IAR. Пока в хелпах ничего не нашел, пороюсь еще. Что такое хидерные файлы? Это то, что подгружается: #include <msp430g2231.h> Может подскажите хотя бы имена файлов.
  13. Зарезервированными словами в языках программирования называют слова, имеющее специальное значение. Идентификаторы с такими именами запрещены. WDTCNT - это счетчик таймера. Это слово я не имею право использовать как переменую. Самый простой пример: попробуйте в виндозе создать файл с именем lpt. Скорее всего у вас ничего не получится, поскольку это слово зарезервировани под параллельный порт. Зато я могу в командах и программах при помощи этого слова обращаться к параллельному порту и наоборот, увидев слово lpt я знаю, что это не имя переменной, а конкретное оборудование. На моем этапе познания двойная задача: понять смысл слов, которые используются в программе, а с другой стороны надо бы знать какими словами мне в программе мне называть внутренние ресурсы микроконтроллера. Наверняка такой список есть, но где?
  14. Зарезервированные слова IAR

    Начинаю вникать в MSP430G2, купил LAunchPad и решил начать с осмысливания программы "моргающий светодиод", разбирая прошитую программу. Насколько понял, WDTCTL, WDTPW, WDTHOLD - зарезервированные слова. Нашел их описание. К зарезервированным, насколько понял, относятся CCTL0, CCIE, TACTL ну и наверно другие. Где найти перечень всех зарезервированных слов для IAR и их описание?
  15. Проблема решилась. Три временных файла, которые формируются при инсталяции: xp32a6c2.rra xp32a2ea.rra xp32a28c.rra дают ложное срабатывание на Trojan.DownLoader4.63576. Связался с лабораторией Данилова. В антивирусные базы были внесены изменения. теперь установка IAR идет без проблем. Что меня удивило: неужто никто из пользователей IAR с этим не сталкивался? Или ни у кого из них нет легального, постоянно обновляемого DrWeb?
×
×
  • Создать...