All streams
Search
Write a publication
Pull to refresh
33
0
Ефимов Кирилл @kirill89

Пользователь

Send message
Было ещё множество замечательных сцен, где герой фильма говорил про кадр с камеры наблюдения например: «сделайте изображение чётче», и оператор в два клика «делал всё чётко».
Знаете, а самое забавное, что ровно сегодня я готовил материал для следующей статьи и наткнулся на другой пример кода в том же архиве в файле msp430x22x4_wdt_05.c.
...
for (;;)
  {
    volatile unsigned int i;

    P1OUT ^= 0x01; // Toggle P1.0 using exclusive-OR

    i = 50000; // Delay
    do (i--);
    while (i != 0);
...

Тут используется локальная переменная.

Я не берусь обсуждать стандарты языка, по скольку не считаю себя отличным C/C++ программистом. Повторюсь, я учился работать с контроллером по официальным примерам и документациям, и если там содержались ошибки, связанные со стандартом языка, они вполне могли быть перенесены на мой код.
Если Вы уверены в своей правоте, я бы рекомендовал сообщить в техническую поддержку TI об ошибках в коде примеров.

Мне кажется, что вы драматизируете. На картинке снимки экрана, где виден процесс выполнения в обоих случаях.
По-моему, надо руки обрывать за такое использование volatile.

Не будьте так критичны. Я учился работать с MSP430 по официальным примерам от Texas Instruments, и там volatile для организации задержки используется достаточно часто.
Что бы не быть голословным, вот ссылка, откроем, например, файл msp430x22x4_uscia0_irda_01.c, 62 строка:
for (i = 1000; i; i--); // Small delay
Выше есть объявление (37 строка):
volatile unsigned int i;
Действительно, в зависимости от IDE, будут отличия. В прошлой статье я писал о причинах выбора именно этой IDE.
С потерей читабельности, а соответственно, сложностями при сопровождении.
Когда речь идёт о системах реального времени, в которых необходимо обрабатывать большие объемы данных, то безусловно наилучшем решением является ASM. Ни один компилятор не донесёт до микроконтроллера Ваши мысли лучше Вас самих.
Но если говорить о системах, которые выполняют не большое количество задач, да ещё и с небольшими требованиями к задержкам, то можно использовать любой удобный язык.
В частности C++ в разы повышает скорость разработки. Классы которые я отписывал раньше, с минимальными изменениями, идут в следующие проекты, при этом не ухудшая читабельность кода. Я не опровергаю мысль о том, что это, может быть, не рационально, но сроки разработки часто играют большую роль.
Хорошо, когда буду писать про таймеры, обязательно включу.
Про переменную в цикле я знал, а вот про void — нет. Спасибо.
Это C++.
Хотя конечно почти никакой специфики C++ в примере нет.
Я очень сильно привык к прелестям ООП и поэтому программы побольше, чем эта, всегда всегда пишу с применением классов.
В следующих статьях обязательно расскажу подробнее про все возможности watchdog. В этот раз не получилось — слишком много материала.
Выложил.
.h файлы для других микроконтроллеров лежат в папке \Program Files\IAR Systems\Embedded Workbench 6.0 Kickstart\430\inc
Полностью согласен.
К этому стоит добавить наличие доступных отладочных наборов.
Обязательно расскажу подробнее на следующей неделе.
Ура! С Новым Годом!
Не знаком с Play Framework, но в Spring есть аннотации для работы с URL.
@RequestMapping(value = "/edit", method = RequestMethod.GET)
public String edit(Model model, @RequestParam(value = "text", required = true) String text) {
  ...
}
Не знаю, как эта мысль пришла автору в голову, но идея просто великолепна.
Обязательно попробую проделать тоже самое дома.
Спасибо!
С праздником!
Сегодня надо знатно покодить :)
Да, согласен. Это на усмотрение каждого. Мне более удобным показался вариант с PHP.
Мне ранее не приходилась работать с GAE, там разве есть поддержка PHP?

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity