29.11.2010, 16:49
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: STM8(S/L), первые впечатления
Сообщение от kison
|
В IAR только дефайны описывающие периферию. Это вовсе не библиотека, там нет кода. Так что и обсуждать нечего.
|
Значится забываем про IAR на время и долбим Cosmic дальше...
__________________
Осторожно , злой кот
Последний раз редактировалось Falconist; 14.04.2011 в 00:24.
|
|
|
|
29.11.2010, 18:29
|
|
Почётный гражданин KAZUS.RU
Регистрация: 19.02.2008
Сообщений: 1,799
Сказал спасибо: 124
Сказали Спасибо 602 раз(а) в 419 сообщении(ях)
|
Re: STM8(S/L), первые впечатления
Сообщение от dosikus
|
долбим Cosmic дальше...
|
Правда голова пухнет! Зато интересно.
Последний раз редактировалось Falconist; 14.04.2011 в 00:24.
|
|
|
|
29.11.2010, 19:11
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: STM8(S/L), первые впечатления
Сообщение от faru
|
либо используйте "iostm8sXXXYY.h", там все вектора описаны,
|
Описаны кстати сильно. Кусочек оттуда
Код:
|
#define I2C_STOPF_vector 0x15
#define I2C_BTF_vector 0x15
#define I2C_OVR_vector 0x15 |
Вот зачем так делать? Все прерывания от I2C на одном векторе. Зачем его называть несколько раз разными именами? Тем кто выбрал Cosmic придется руками встраивать вектор в таблицу. Зато нет никакой путаницы с именами. ![Улыбка](images/smilies/icon_smile.gif) В свободное от разгадки этой загадки время можно светодиодиком помигать
Последний раз редактировалось Falconist; 14.04.2011 в 00:24.
|
|
|
|
29.11.2010, 19:48
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: STM8(S/L), первые впечатления
Сообщение от faru
|
у вас вызвывет смех то, что некоторые события используют один и тот же вектор ?
|
У меня вызывает смех не несколько событий на векторе, это как раз обыденно. А вот несколько имен ОДНОГО вектора - очень свежо. Почему не:
Код:
|
#define I2C_vector 0x1F |
???
Последний раз редактировалось Falconist; 14.04.2011 в 00:24.
|
|
|
|
29.11.2010, 19:49
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: STM8(S/L), первые впечатления
Сообщение от faru
|
но тут все поглощены зацикливанием единственного светодиодика )
|
Ну да , какая мелочь - светодиодик . А то что компилятор да же не знает, что бит инвертируется одной командой ? А дальше больше ?
__________________
Осторожно , злой кот
Последний раз редактировалось Falconist; 14.04.2011 в 00:24.
|
|
|
|
30.11.2010, 01:01
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: STM8(S/L), первые впечатления
Сообщение от faru
|
Вопрос по-существу: как в IAR для STM8 избавится от пред-иннициализатора, т.е. чтобы вектор reset'а смотерел на начало main() ?
|
А зачем? Если исключить стартап, то не будет инициализированных глобальных/статических переменных. Не инициализированные явно не будут равны 0. Стек не будет настроен. В стартапе лишнего обычно не бывает.
Последний раз редактировалось Falconist; 14.04.2011 в 00:23.
|
|
|
|
30.11.2010, 10:55
|
|
Гражданин KAZUS.RU
Регистрация: 04.08.2006
Сообщений: 911
Сказал спасибо: 28
Сказали Спасибо 180 раз(а) в 139 сообщении(ях)
|
Re: STM8(S/L), первые впечатления
Сообщение от faru
|
Вопрос по-существу: как в IAR для STM8 избавится от пред-иннициализатора, т.е. чтобы вектор reset'а смотерел на начало main() ?
|
Вы можете поместить свои переменные в сегмент __no_init. Компилятор не будет инициализировать переменные. Убрать инициализацию стеков и прочее, естественно, не удастся. Если обнулить кучу, то она тоже не будет создаваться.
Последний раз редактировалось Falconist; 14.04.2011 в 00:23.
|
|
|
|
30.11.2010, 16:47
|
|
Частый гость
Регистрация: 05.12.2007
Сообщений: 36
Сказал спасибо: 1
Сказали Спасибо 10 раз(а) в 5 сообщении(ях)
|
Re: STM8(S/L), первые впечатления
народ прошу не пинайте!
малость не в тему- у меня st7 микроконтроллеры не могу прошить-
программатор не видит! и что делать не знаю и подсказать не кому
может среди вас знатоки есть? буду очень признателен!!
на ангельский не отправлять! всё равно ничё не пойму.
|
|
|
|
30.11.2010, 18:20
|
|
Частый гость
Регистрация: 02.02.2010
Сообщений: 35
Сказал спасибо: 2
Сказали Спасибо 1 раз в 1 сообщении
|
Re: STM8(S/L), первые впечатления
Запустил таймер, запустил UART. Всё-таки решил особо не пользоваться библиотеками от IAR - слишком много путаницы
|
|
|
|
01.12.2010, 06:51
|
|
Временная регистрация
Регистрация: 15.03.2006
Сообщений: 80
Сказал спасибо: 3
Сказали Спасибо 83 раз(а) в 11 сообщении(ях)
|
Re: STM8(S/L), первые впечатления
Да нету вроде особой путаницы. Для каждого служебного бита или группы битов своя одно или много-разрядная переменная.
Ищите в заголовочнике поиском по названию нужного бита переменную типа:
МОДУЛЬ_РЕГИСТР_БИТ, например PB_ODR_ODR0
PB - модуль (порт B), регистр ODR, бит - ODR0
и простым присвоением сбрасываете, устанавливайте и т.д.
Код:
|
#define LED PB_ODR_ODR0 // Вывод светодиода.
#define SET 1 // Установить.
#define CLR 0 // Сбросить.
LED=SET;
LED=CLR; |
Есть многоразрядные переменные, когда нужно задать комбинацию нескольких соседних битов, например:
Код:
|
UART2_CR3_STOP=3; // bit4=bit5=1. |
В общем, всё достаточно удобно и наглядно
Последний раз редактировалось Falconist; 14.04.2011 в 00:23.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 22:48.
|
|