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

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

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

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

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


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

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

Блоги

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

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

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

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

Группа


ICQ


Skype


Интересы


Город


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


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

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

  1. Суть программы нажали на кнопку ушли в прерывание, в прерывании от кнопки поменяли уровень на порту со светодиодом, порт с 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) { } }
  2. Запускаем новый видеокурс по микроконтроллерам семейства STM8. Курс планируем сделать интересным и интерактивным. Будут различные задания для проверки ваших знаний. От вас хотим услышать обратную связь и активное обсуждение, а также ждем любых вопросов! Ведет курс Василий (Профиль на сайте cxem.net для доната: i80186) Урок #1: Рассмотрены основные особенности микроконтроллеров серии STM8 серии STMicroelectronics. Проведено сравнение их с микроконтроллерами фирм Atmel и Microchip. Так же уделено внимание средствам разработки и отладки для данных микроконтроллеров, требующимся для начала работы с ними, а именно среде IAR EMBEDDED WORKBENCH для STM8 и отладочному набору на базе микроконтроллера STM8S105 - STM8S-DISCOVERY.
  3. Начал тестовый проект. Использую ST Visual Develop + Cosmic. Интересует возможность узнать размер занятой памяти (код, озу и т.п.). Лазил в настройках, ничего похожего не нашел. Гугл тоже не помог. Может знает кто, как это сделать?
  4. Рассмотрены основные особенности микроконтроллеров серии STM8 серии STMicroelectronics. Проведено сравнение их с микроконтроллерами фирм Atmel и Microchip. Так же уделено внимание средствам разработки и отладки для данных микроконтроллеров, требующимся для начала работы с ними, а именно среде IAR EMBEDDED WORKBENCH для STM8 и отладочному набору на базе микроконтроллера STM8S105 - STM8S-DISCOVERY.
  5. Добрый вечер. Есть несколько непонятных для меня вопросов: 1. Что есть программатор? Зачем нужен? 2. Зачем делать свой программатор, если к данному МК существует заводской? 3. Что есть отладочная плата? Зачем нужна? 4. Подойдет ли для начинающего STM8? Почему? 5. Подойдет ли для начинающего STM32? Почему? 6. С чего нужно начинать изучения МК? (знаю язык C (C++)) 7. Можно ли программировать МК на С++? Можете пожалуйста разъяснить все это. Данные вопросы возникли после чтения статей и уроков по МК из интернета. Спасибо.
  6. Пытаюсь завести 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