Поиск по сайту

Результаты поиска по тегам 'STM8'.

  • Поиск по тегам

    Введите теги через запятую.
  • Поиск по автору

Тип публикаций


Категории и разделы

  • Вопрос-Ответ. Для начинающих
    • Песочница (Q&A)
    • Дайте схему!
    • Школьникам и студентам
    • Начинающим
    • Паяльник TV
    • Обсуждение материалов с сайта
  • Радиоэлектроника для профессионалов
    • Световые эффекты и LED
    • Роботы и модели на ДУ-управлении
    • Автоматика
    • Самодельные устройства к компьютеру
    • Программное обеспечение
    • Автомобильная электроника
    • Системы охраны и наблюдения. Личная безопасность
    • Питание
    • Электрика
    • Промышленная электроника
    • Ремонт
    • Металлоискатели
    • Измерительная техника
    • Мастерская радиолюбителя
    • Сотовая связь
    • Спутниковое ТВ
    • КВ и УКВ радиосвязь
    • Жучки
    • Телефония и фрикинг
    • Высокое напряжение
    • Идеи и технологии будущего
    • Справочная радиоэлементов
    • Литература
    • Разное
  • Аудио
    • FAQ, Технологии и компоненты
    • Для начинающих
    • Источники звука
    • Предусилители, темброблоки, фильтры
    • Питание аудио аппаратуры
    • Усилители мощности
    • Акустические системы
    • Авто-аудио
    • Ламповая техника
    • Гитарное оборудование
    • Прочее
  • Микроконтроллеры
    • МК для начинающих
    • AVR
    • PIC
    • STM32
    • Arduino и Raspberry Pi
    • ПЛИС
    • Другие микроконтроллеры и семейства
    • Алгоритмы
    • Программаторы и отладочные модули
    • Периферия и внешние устройства
    • Разное
  • Товары и услуги
    • Коммерческие предложения
    • Продам-Отдам, Услуги
    • Куплю
    • Уголок потребителя
    • Вакансии и разовая работа
    • Наши обзоры и тесты
  • Разное
    • Конкурсы сайта с призами
    • Сайт Паяльник и форум
    • Курилка
    • Технический английский (English)
    • Наши проекты для Android и Web
    • FAQ (Архив)
    • Личные блоги
    • Корзина
    • Вопросы с VK
  • ATX->ЛБП Переделки
  • Юмор в youtube Киловольты юмора
  • Надежность и группы продавцов Радиолюбительская доска объявлений exDIY
  • разные темы Переделки

Блоги

Нет результатов для отображения.

Нет результатов для отображения.

Местоположения

  • Пользователи форума

Группа


ICQ


Skype


Интересы


Город


Сфера радиоэлектроники


Оборудование

Найдено 8 результатов

  1. Запускаем новый видеокурс по микроконтроллерам семейства STM8. Курс планируем сделать интересным и интерактивным. Будут различные задания для проверки ваших знаний. От вас хотим услышать обратную связь и активное обсуждение, а также ждем любых вопросов! Ведет курс Василий (Профиль на сайте cxem.net для доната: i80186) Урок #1: Рассмотрены основные особенности микроконтроллеров серии STM8 серии STMicroelectronics. Проведено сравнение их с микроконтроллерами фирм Atmel и Microchip. Так же уделено внимание средствам разработки и отладки для данных микроконтроллеров, требующимся для начала работы с ними, а именно среде IAR EMBEDDED WORKBENCH для STM8 и отладочному набору на базе микроконтроллера STM8S105 - STM8S-DISCOVERY.
  2. Помогите с IAR

    Здравствуйте! Помогите пожалуйста разобраться с заголовочным файлом. По идее pragma vector должен быть прописан в IOSTM8s003f3.h но там почему то не прописаны аектора внешних прерываний. Помогите! И еще вопросик. Как посмотреть что описано в "#define" файле. Может его можно самому написать. А В ДАТАШИТЕ ВЕКТОРА ЕСТЬ
  3. Захват-Сравнение

    Здравствуйте. Такой вопрос. Нужно реализовать на STM8S командное управление. Поясню. При поступлении восьмибитного кода на пин МК нужно выполнять какое то действие. Кодировка кода происходит ШИМ модуляцией( Т,Е. по длительности импульса- длинный импульс =1 короткий =0.). При нарастании фронта на ножку МК нужно включить таймер. По спаду фронта нужно выключить таймер, и сравнить значение счетчика с числом. Если значение совпадает, то записать число (0 или 1) в соответствующий бит регистра. По принятии всех 8 битов нужно выполнять какое-то действие. Так вот вопрос заключается в том-как реализовать запуск таймера при поступлении на ножку фронта сигнала, и как его остановить по спаду и проверить значение счетчика. Желательно делать аппаратно на таймерах и прерываниях, что бы уменьшить время.
  4. Суть программы нажали на кнопку ушли в прерывание, в прерывании от кнопки поменяли уровень на порту со светодиодом, порт с LED соединён с другим портом на котором тоже есть прерывание при переходе из 0 в 1, Соответственно при нажатии кнопки ушли в прерывание там выставили смену уровня на другой ноге и должно сработать другое прерывание. Проблема, прерывание от кнопки работает, прерывание от смены уровня нет. Хотя этаже программа работала, плата STM8L152C6T6 пере прошивалась затем залилась этаже прога и не заработала. Ещё вопрос при прерывании от кнопки устанавливается бит флага EXTI_SR1_bit.P1F а чтоб его сбросить почему то работает EXTI_SR1_bit.P2F=0; а не EXTI_SR1_bit.P1F=0; Код программы полностью: В IAR /* *15.11.2016 *STM8L152C6T6 * *Измерять таймером задержку от нажатия кнопки до начала генерации */ #include "iostm8l152c6.h" int perep; unsigned int tic; /**************Обработка вектора прерывания от кнопки**************/ #pragma vector=EXTI1_vector __interrupt void Pin1_interrupt(void) { EXTI_SR1_bit.P2F=0;//Сброс флага прерывания TIM1_CR1_bit.CEN = 1; //Запускаем таймер PC_ODR_bit.ODR7^=1; //Инверсия порта С7 } /**************Обработка вектора прерывания от начала генерации**************/ #pragma vector=EXTI6_vector __interrupt void Pin6_interrupt(void) { EXTI_SR1_bit.P2F=0;//Сброс флага прерывания TIM1_CR1_bit.CEN = 0; //Останавливаем таймер tic=TIM1_CNTRL; PE_ODR_bit.ODR7^=1; //Инверсия порта E7 } /************************При переполнении таймера*******************************************************/ /*#pragma vector=TIM1_OVR_UIF_vector __interrupt void TIM1_OVF(void) { //perep++; }*/ int main( void ) { /***************Выберем частоту SYSCLK************/ //По умолчанию тактируемся от HSI/8 CLK_CKDIVR=0;// Выбираем делитель на 1 /********Инициализация пина который моргает Светодиодом ИИИИИИИИИИИИИИИНДИКАЦИЯ********/ PC_DDR_bit.DDR7 = 1; //Настраиваем 7й пин порта C на выход PC_CR1_bit.C17 = 1; //Переключаем его в режим push-pull (это когда он может выдавать //и низкий и высокий уровень), а то по-умолчанию он прикидывается пинов с открытым стоком //(это когда может выдавать только низкий уровень, а вместо высокого переключается на вход) /********Инициализация пина который моргает Светодиодом********/ PE_DDR_bit.DDR7 = 1; //Настраиваем 7й пин порта C на выход PE_CR1_bit.C17 = 1; //Переключаем его в режим push-pull (это когда он может выдавать //и низкий и высокий уровень), а то по-умолчанию он прикидывается пинов с открытым стоком //(это когда может выдавать только низкий уровень, а вместо высокого переключается на вход) /****************************************************************************************/ /*****************ПРЕРЫВАНИЕ ОТ КНОПКИ****************************************************************************/ /*С начало настраиваем пины с кнопкой*/ PC_DDR_bit.DDR1 =0; //Настраиваем 1й пин порта C на вход PC_CR1_bit.C11=1; //Настроили порт кнопки на вход pull-up PC_CR2_bit.C21=1; //Размещаем прерывание /***************Настройка прерываний**************/ /*В регистре EXTI_CONF1 по умолчанию все 0 тоесть каждый пин даёт нам отдельное прерывание*/ //Настраиваем фронт срабатывания прерывания //Т.к. кнопка замыкается на землю то выбираем задний фронт EXTI_CR1_bit.P1IS=2; //Прерывание на ножке срабатывает по заднему фронту //ITC_SPR1_bit.VECT1SPR=0; //Высокий прерывание от нашей кнопки /**************************************************************************************************************/ /*********************ПРЕРЫВАНИЕ ПРИ НАЧАЛЕ ГЕНЕРАЦИИ**********************************************************/ PC_DDR_bit.DDR6 =0; //Настраиваем 6й пин порта C на вход PC_CR1_bit.C16=1; //Настроили порт на вход pull-up PC_CR2_bit.C26=1; //Размещаем прерывание /***************Настройка прерываний**************/ /*В регистре EXTI_CONF1 по умолчанию все 0 то есть каждый пин даёт нам отдельное прерывание*/ //Настраиваем фронт срабатывания прерывания //Фронт прерывания передний EXTI_CR2_bit.P6IS=1; //Прерывание на ножке срабатывает по переднему фронту //ITC_SPR2_bit.VECT6SPR=3; //Средний приоритет прерывание от нашей кнопки /*********Настройка таймера TIM1***************************/ CLK_PCKENR2_bit.PCKEN21 = 1; //Включаем тактирование таймера TIM1 //Делитель на 160 //НО выставляем 15(так как всегда +1) TIM1_PSCRH = (15) >> 8; TIM1_PSCRL = (15)& 0xFF; TIM1_PSCRH = (0) >> 8; TIM1_PSCRL = (0)& 0xFF; //Счет по умолчанию вверх TIM1_CR1 DIR=0 //Значение регистра сравнения(До чего тикает таймер) TIM1_ARRH = (10000) >> 8; TIM1_ARRL = (10000)& 0xFF;//Частота переполнений = 16М / 1600 / 10000 = 1 Гц /*Новый пред делитель в таймер записывается только после события Update (Update Event — UEV) чтоб сразу инициализировать нужный пред делитель вызовем программно Update (Update Event — UEV), и чтоб в это время не уйти в какое нибудь прерывание разрещим прерывание только от переполнения таймера */ TIM1_CR1_bit.URS = 1; //Прерывание только по переполнению счетчика TIM1_EGR_bit.UG = 1; //Вызываем Update Event TIM1_IER_bit.UIE = 0; //Запрещаем прерывание при совпадении с ARR TIM1_CR1_bit.CEN = 0; //не Запускаем таймер asm("RIM");//Глобальное разрешение прерываний while(1) { } }
  5. Начал тестовый проект. Использую ST Visual Develop + Cosmic. Интересует возможность узнать размер занятой памяти (код, озу и т.п.). Лазил в настройках, ничего похожего не нашел. Гугл тоже не помог. Может знает кто, как это сделать?
  6. Рассмотрены основные особенности микроконтроллеров серии STM8 серии STMicroelectronics. Проведено сравнение их с микроконтроллерами фирм Atmel и Microchip. Так же уделено внимание средствам разработки и отладки для данных микроконтроллеров, требующимся для начала работы с ними, а именно среде IAR EMBEDDED WORKBENCH для STM8 и отладочному набору на базе микроконтроллера STM8S105 - STM8S-DISCOVERY.
  7. Добрый вечер. Есть несколько непонятных для меня вопросов: 1. Что есть программатор? Зачем нужен? 2. Зачем делать свой программатор, если к данному МК существует заводской? 3. Что есть отладочная плата? Зачем нужна? 4. Подойдет ли для начинающего STM8? Почему? 5. Подойдет ли для начинающего STM32? Почему? 6. С чего нужно начинать изучения МК? (знаю язык C (C++)) 7. Можно ли программировать МК на С++? Можете пожалуйста разъяснить все это. Данные вопросы возникли после чтения статей и уроков по МК из интернета. Спасибо.
  8. Пытаюсь завести UART на сабжевом микроконтроллере. В принципе таки все есть, но UART упорно молчит при передаче и не выходит на прерывание при приеме. Чутье подсказывает, что я просто напросто не так подал тактирование на модуль USART, но уже раз 10 все перепроверил. Все именно так. Вот код: #include "iostm8l152c6.h" int main ( void ) { PC_DDR_bit.DDR3 = 1; PC_CR1_bit.C13 = 1; PC_CR2_bit.C23 = 0; PC_DDR_bit.DDR2 = 0; PC_CR1_bit.C12 = 1; PC_CR2_bit.C22 = 1; //UART init CLK_PCKENR1_bit.PCKEN15 = 1; USART1_CR1 = 0; USART1_CR3 = 0; USART1_CR4 = 0; USART1_CR5 = 0; USART1_BRR2 = 0x03; USART1_BRR1 = 0x68; USART1_CR2_bit.RIEN = 1; USART1_CR2_bit.REN = 1; USART1_CR2_bit.TEN = 1; asm("RIM"); while (1) { //Loop while(!(USART1_SR_bit.TC)); USART1_DR = '!'; } return 0; } #pragma vector=USART_R_OR_vector __interrupt void USART_RXNE(void) { while(!(USART1_SR_bit.TC)); USART1_DR = '?'; } По поводу железа... Передачу (TX со стороны STM) я жду на лапе PC3, а прием (RX) на PC2