Например TDA7294

Форум РадиоКот • Просмотр темы - Программирование STM8
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Вт июн 17, 2025 17:35:11

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 2561 ]     ... , , , 10, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Пн июл 18, 2011 05:40:40 
Родился

Зарегистрирован: Вс ноя 23, 2008 12:03:37
Сообщений: 8
Рейтинг сообщения: 0
Zheleznjakov писал(а):
Вам не хватает фришной версии с ограничением в 32кБ? по моему более чем достаточно :)

мне не хватает адекватности французов, которые высылают ключ, привязанный ко всему, к чему можно (даже венду не переставить), и делают это своими медлееенными лягушачьими лапками) а райсонанс, вроде, код похуже генерит.
тащем-та, если правила форума запрещают, то есть же личка.

_________________
don't believe what u see,
don't believe what u read


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Пн июл 18, 2011 11:30:01 
Опытный кот
Аватар пользователя

Зарегистрирован: Вт янв 20, 2009 14:49:08
Сообщений: 890
Откуда: Гондурас, Мурманск
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
можно посмотреть тут
или тут

_________________
- Если вы такие умные, то почему тогда строем не ходите?
ἓν οἶδα ὅτι οὐδὲν οἶδα (с) Σωκράτης


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Чт сен 15, 2011 10:30:37 
Родился

Зарегистрирован: Чт сен 15, 2011 09:52:09
Сообщений: 2
Рейтинг сообщения: 0
qwerky писал(а):
Получилось записать, непонятно в чем была проблема. Плюс отладчик задолбал - при перепрограммировании полностью стирает EEPROM, приходится каждый раз редактировать настройки.
Теперь непонятки с watchdog. Настроил на 1 сек:
Код:
IWDG_KR  = 0x55;  // enable access
IWDG_PR  = 0b110; // prescaler
IWDG_RLR = 0xFF;  // reload value
IWDG_KR  = 0xCC;  // start
Но при малейшей задержке в программе (однозначно меньше секунды - например чтение DS18B20 или запись EEPROM) происходит сброс.


Как получилось писать в EEPROM?
Поделитесь кодом.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Чт сен 15, 2011 11:48:13 
Нашел транзистор. Понюхал.
Аватар пользователя

Зарегистрирован: Сб июн 12, 2010 16:19:17
Сообщений: 190
Откуда: Россия, Томск
Рейтинг сообщения: 0
Вот тут шаблон
http://ziblog.ru/2011/04/24/stm8l-disco ... discovery/

исправить запись в main.h
#define LED_GREEN E, 7, LOW, OUTPUT_PUSH_PULL_SPEED_LIMIT_10MHZ
на
#define LED_GREEN E, 7, HIGH, OUTPUT_PUSH_PULL_SPEED_LIMIT_10MHZ

в опциях проекта на вкладке linker
в ячейку Objects
прописать либу libl0.sm8

если файл линкера пишите сами то прописать либу в него

простой пример для stm8l

Код:
#include "main.h"

@eeprom uint8_t test;

volatile char FLASH_IAPSR @0x5054;
volatile char FLASH_CR2 @0x5051;

//----------
void mcu_eeprom_unlock(void)
{
   if ((FLASH->IAPSR & FLASH_FLAG_DUL) != FLASH_FLAG_DUL)
   {
      FLASH->DUKR = FLASH_RASS_KEY2;
      FLASH->DUKR = FLASH_RASS_KEY1;

      while ((FLASH->IAPSR & FLASH_FLAG_DUL) != FLASH_FLAG_DUL)
      {
      }
   }
}

//----------
int main(void)
{
   PIN_CONFIGURATION(LED_GREEN);
   
   mcu_eeprom_unlock();
   
   test = 1;
   
   if(test == 1)
   {
      PIN_ON(LED_GREEN);
   }
   else
   {
      PIN_OFF(LED_GREEN);
   }

   while (1)
   {
   }

   return 0;
}

_________________
С уважением, Денис Железняков aka ZiB
Мой блог: http://ziblog.ru


Вернуться наверх
 
В продаже новые LED-драйверы XLC компании MEAN WELL с диммингом нового поколения

Компания MEAN WELL пополнила ассортимент своей широкой линейки светодиодных драйверов новым семейством XLC для внутреннего освещения. Главное отличие – поддержка широкого спектра проводных и беспроводных технологий диммирования. Новинки представлены в MEANWELL.market моделями с мощностями 25 Вт, 40 Вт и 60 Вт. В линейке есть модели, работающие как в режиме стабилизации тока (СС), так и в режиме стабилизации напряжения (CV) значением 12, 24 и 48 В.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Чт сен 15, 2011 12:19:32 
Родился

Зарегистрирован: Чт сен 15, 2011 09:52:09
Сообщений: 2
Рейтинг сообщения: 0
Zheleznjakov писал(а):
Вот тут шаблон
http://ziblog.ru/2011/04/24/stm8l-disco ... discovery/

исправить запись в main.h
#define LED_GREEN E, 7, LOW, OUTPUT_PUSH_PULL_SPEED_LIMIT_10MHZ
на
#define LED_GREEN E, 7, HIGH, OUTPUT_PUSH_PULL_SPEED_LIMIT_10MHZ

в опциях проекта на вкладке linker
в ячейку Objects
прописать либу libl0.sm8




О, спасибо, оказывется ключевым моментом является прописать библиотеу libl0.sm8. Я смотрю, она там есть, оказывается еще там надо прописать.
Спасибо, заработало. Еще, что бы запретить запись, надо сбросить флаг DUL в регистре FLASH_IAPSR.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Чт сен 15, 2011 12:27:02 
Нашел транзистор. Понюхал.
Аватар пользователя

Зарегистрирован: Сб июн 12, 2010 16:19:17
Сообщений: 190
Откуда: Россия, Томск
Рейтинг сообщения: 0
ой, точно :)

Код:
//----------
void mcu_eeprom_lock(void)
{
   if ((FLASH->IAPSR & FLASH_FLAG_DUL) == FLASH_FLAG_DUL)
   {
      FLASH->IAPSR &=FLASH_MemType_Data;
   }
}

_________________
С уважением, Денис Железняков aka ZiB
Мой блог: http://ziblog.ru


Вернуться наверх
 
Распродажа паяльного оборудования ATTEN!
Паяльные станции, паяльники и аксессуары по самой выгодной цене.

По промокоду radiokot скидка 10%
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Вт сен 20, 2011 10:59:23 
Сверлит текстолит когтями
Аватар пользователя

Карма: 4
Рейтинг сообщений: 30
Зарегистрирован: Ср янв 05, 2011 16:25:15
Сообщений: 1163
Рейтинг сообщения: 0
Демо-платка для работы/изучения stm8s103k
Изображение


Вложения:
stm8brd.rar [22.59 KiB]
Скачиваний: 334
stm8s103k.rar [5.68 KiB]
Скачиваний: 363
stm8s103k.JPG [6.14 KiB]
Скачиваний: 9271
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Ср ноя 09, 2011 11:08:13 
Открыл глаза

Зарегистрирован: Вт мар 18, 2008 10:29:04
Сообщений: 43
Рейтинг сообщения: 0
Я извеняюсь, что лезу с тупыми вопросами - прошу сильно не пинать.
Написал свою первую программу для ST8S207K6 в среде ST Visual Develop с компиляцией из STM8Cosmic.
Использовал только одну библиотеку STM8S207K.h
Итог программы:


#include "STM8S207K.h";
//#include "stm8_interrupt_vector.c";
void CLK_Init (void) //Функция инициализации тактового генератора
{
CLK_ECKR|=(1<<0); //Разрешаем работу от внешнего кварца
CLK_SWR = 0xB4; //Выбираем основное тактирование от внешенго кварца
CLK_SWCR |= (1<<1); //Разрешаем переключение на основное тактирование
CLK_CKDIVR = 0; //Делители частоты =1
CLK_PCKENR1 |= (1<<3); //Подключаем тактовый генератор к таймеру 4
}
void GPIO_Init (void) //Функция настройки портов ввода вывода
{
PD_DDR |= (1<<0); //PD0 на выход
PD_CR1 |= (1<<0); //PD0 Push pull
PC_DDR = 0x0E;
}
void TIM1_Init (void)
{
TIM1_CR1=0x90;//предзагрузка, счет вниз, без остановки без прерываний 0X90
TIM1_CR2=0x00;
TIM1_PSCRH=0X00;
TIM1_PSCRL=0X00;
TIM1_CCMR1=0x70;
TIM1_CCMR2=0x70;
TIM1_CCMR3=0x70;
TIM1_CCER1=0x11;
TIM1_CCER2=0x01;
TIM1_ARRH=0X3E;
TIM1_ARRL=0X80;
TIM1_CCR1H=0X00;
TIM1_CCR1L=0X0A;
TIM1_CCR2H=0X00;
TIM1_CCR2L=0X0A;
TIM1_CCR3H=0X00;
TIM1_CCR3L=0X0A;
TIM1_CR1=0x91; //Разрешаем счет
}
main()
{
CLK_Init();
GPIO_Init();
TIM1_Init();
while(1) ;
}


Проблемма в том, что запускаю програмую симуляцию - все без ошибок компелируется, программа начинает работать, но таймер просто тупа стоит - даже не знаю - может это глюк симулятора в программе.

Пробывал простейшую программу:
#include "STM8S207K.h";
//#include "stm8_interrupt_vector.c";
void CLK_Init (void) //Функция инициализации тактового генератора
{
CLK_ECKR|=(1<<0); //Разрешаем работу от внешнего кварца
CLK_SWR = 0xB4; //Выбираем основное тактирование от внешенго кварца
CLK_SWCR |= (1<<1); //Разрешаем переключение на основное тактирование
CLK_CKDIVR = 0; //Делители частоты =1
CLK_PCKENR1 |= (1<<3); //Подключаем тактовый генератор к таймеру 4
}
void TIM4_Init (void)
{
TIM4_PSCR = 0x00; //Максимальный коэффициент деления 128 частота 125кГц
TIM4_ARR = 0xD0; //Значение перезагрузки 125000/208 = 601 Гц
TIM4_CR1 |= (1<<0); //Запускаем счет
}
//Прописываем обработчик прерываний для таймера 4

main()
{
CLK_Init();
TIM4_Init();
while(1) ;
}

Таймер 4 стоит и все тут!. Подскажите в чем косяк?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Ср ноя 09, 2011 12:00:42 
Родился

Зарегистрирован: Вс ноя 23, 2008 12:03:37
Сообщений: 8
Рейтинг сообщения: 0
jtlex писал(а):
Подскажите в чем косяк?

enableInterrupts(); спасёт отца русской демократии)
может, ещё и в регистры таймеров что-то не то кладёте, но нет сил рассматривать ваши магические числа. надо юзать константы.

и не "Я извеняюсь", а "Извините")

_________________
don't believe what u see,
don't believe what u read


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Ср ноя 09, 2011 12:44:33 
Открыл глаза

Зарегистрирован: Вт мар 18, 2008 10:29:04
Сообщений: 43
Рейтинг сообщения: 0
berrymorr писал(а):
jtlex писал(а):
Подскажите в чем косяк?

enableInterrupts(); спасёт отца русской демократии)
может, ещё и в регистры таймеров что-то не то кладёте, но нет сил рассматривать ваши магические числа. надо юзать константы.

Может тогда подсткажите как просто запустить таймер - любой. Можно даже не в програмном коде а по порядку что зачем делать.

если раскоментировать #include "stm8_interrupt_vector.c, то ругается "#error clnk Debug\l-bio.lkf:67 Debug\stm8_interrupt_vector.o: symbol __vectab multiply defined (Debug\main.o)" - это второй вопрос.
первый - запустить для меня таймер.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Ср ноя 09, 2011 12:53:25 
Опытный кот
Аватар пользователя

Зарегистрирован: Вт янв 20, 2009 14:49:08
Сообщений: 890
Откуда: Гондурас, Мурманск
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Возможно в программной симуляции нет внешнего кварца, либо просто не настроена.
Попробуй убрать CLK_Init().
И процедура переключения тактирования какая-то странная (см. даташит RM0016).
А вот это:
Цитата:
CLK_PCKENR1 |= (1<<3); //Подключаем тактовый генератор к таймеру 4

вообще подает тактирование на UART
Да и излишне это, так как в STM8S после сброса все биты в регистрах CLK_PCKENRx установлены в 1.

_________________
- Если вы такие умные, то почему тогда строем не ходите?
ἓν οἶδα ὅτι οὐδὲν οἶδα (с) Σωκράτης


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Ср ноя 09, 2011 13:42:25 
Открыл глаза

Зарегистрирован: Вт мар 18, 2008 10:29:04
Сообщений: 43
Рейтинг сообщения: 0
Цитата:
Возможно в программной симуляции нет внешнего кварца, либо просто не настроена

как тогда программа выполняется? она же проходит все настройки - или от внутреннего RC таймер просто не работает?
Цитата:
Попробуй убрать CLK_Init()

я ее ввел, чтоб заведомо быть уверенным, что регистры сброшены на значения по умолчанию - с ней или без нее таймер не работает
Цитата:
CLK_PCKENR1 |= (1<<3); //Подключаем тактовый генератор к таймеру 4

убрал - результат тот же

Взял программу в начале форума запустил ее - откомпелировалась.
догнал эмулятором до таймера - инициализации, а потом ео запуска - таймер стоит. Походу программа.
А Вообще инициализация в правельном порядке? И от внутреннего RC таймер работает?

А вообще есть программы типа протэуса (В протэусе таких микроконтроллеров нет), где можно НЕХ файлик зашить и проэмулировать


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Ср ноя 09, 2011 16:47:25 
Опытный кот
Аватар пользователя

Зарегистрирован: Вт янв 20, 2009 14:49:08
Сообщений: 890
Откуда: Гондурас, Мурманск
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
В программном эмуляторе может быть все что угодно.
В железе и ядро и периферия тактируются все вместе от любого из источников (HSE, HSI, LSI), только предделители раздельные на ядро и периферию.
Вообще в пошаговом режиме таймер тоже работает пошагово. поэтому для проверки нужно проследить, чтобы предделитель был равен единице (0 в регистре TIM4_PSCR), в НЕпошаговом режиме отображение регистров в отладчике не обновляется.

Вышесказанное справедливо для "железного" отладчика, программным эмулятором мне пользоваться не приходилось.

У меня переключение на кварц реализовано так (т.н. "ручное" переключение):
Код:
   CLK_SWR=0xB4;
   while(i++) if(CLK_SWCR&(1<<3))
      {
        CLK_SWCR&=~(1<<3); // Сброс флага SWIF
         CLK_SWCR|=(1<<1);   // Выполняем переключение на кварцевый генератор
         i=1;
         while(CLK_SWCR&1) if(!(i++)) {CLK_SWCR&=0xFE; break;} //По таймауту очищаем флаг SWBSY (отмена переключения)
         if(!(CLK_SWCR&1)) CLK_CKDIVR=0; // тактовая CPU и периферии 8МГц от кварца
         break;
      }

А для инициализации таймера достаточно записать значение в регистр перезагрузки TIMx_ARR и установить в единицу бит CEN в TIMx_CR

_________________
- Если вы такие умные, то почему тогда строем не ходите?
ἓν οἶδα ὅτι οὐδὲν οἶδα (с) Σωκράτης


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Чт ноя 10, 2011 06:31:21 
Родился

Зарегистрирован: Вс ноя 23, 2008 12:03:37
Сообщений: 8
Рейтинг сообщения: 0
jtlex писал(а):
Может тогда подсткажите как просто запустить таймер - любой. Можно даже не в програмном коде а по порядку что зачем делать.

если раскоментировать #include "stm8_interrupt_vector.c, то ругается "#error clnk Debug\l-bio.lkf:67 Debug\stm8_interrupt_vector.o: symbol __vectab multiply defined (Debug\main.o)" - это второй вопрос.
первый - запустить для меня таймер.


ответ на первый вопрос, заведомо рабочий код:
Код:
void tim1_init()
{
  CLK_PCKENR1|=CLK_PCKENR1_TIM1;
  TIM1_SR1&=(uint8_t)(~TIM1_SR1_UIF);  //Сбросим признак прерывания
  TIM1_PSCRH=0; // Prescaler 1MHz @ 16MHz /2 (cauze of half-period)
  TIM1_PSCRL=8;
  TIM1_ARRH=0x00;
  TIM1_ARRL=0x01; // Auto-reload value
  TIM1_CCMR1|=0x30; //toggle mode
  TIM1_CCER1|=TIM1_CCER1_CC1E;
  TIM1_CR1|=TIM1_CR1_CEN; // Enable timer
}

void tim2_init()
{
  CLK_PCKENR1|=CLK_PCKENR1_TIM2;
  TIM2_SR1&=~TIM2_SR1_UIF;  //Сбросим признак прерывания
  TIM2_PSCR=0x09; // Prescaler=512 31.25kHz @ 16MHz (1/31.25k=32us per step)
  TIM2_CNTRH=(uint8_t)(tmp_delay >> 8);
  TIM2_CNTRL=(uint8_t)(tmp_delay);
  TIM2_IER|=TIM2_IER_UIE; // Enable interrupt
  TIM2_CR1|=TIM2_CR1_CEN | TIM2_CR1_OPM | TIM2_CR1_URS; // Enable timer
}

main()
{
  clk_init(); //16 MHz core clock
  port_init();
  tim1_init();
  tim2_init();
  enableInterrupts();
  while(1);

  return(0);
}


return(0) космику не нужен, насколько я знаю - это чисто райзонансовская придурь)
clk_init и port_init вы сами напишете.
TIM1 работает в полностью автоматическом режиме с автозагрузкой без прерываний - дрыгает ногой TIM1_CH1,
TIM2 - в полностью ручном одноимпульсном режиме с прерыванием (запустили, прервался и тут же заглох).

чтобы разрешить TIM1 дрыгать ногами:
TIM1_BKR|=TIM1_BKR_MOE; //enable pwmoutputs
чтобы запретить:
TIM1_BKR&=(uint8_t)(~TIM1_BKR_MOE); //disable pwmoutputs
чтобы переключить:
TIM1_BKR^=TIM1_BKR_MOE; //toggle pwmoutputs

по второму вопросу могу, во-первых, выразить своё невыразимое удивление по поводу того, что вы директивы с комментариями путаете, во-вторых, посоветовать почитать, наконец, книжку по C. для вот самых-самых начинающих, разделы про синтаксис.
конкретно по данному случаю - символ "sharp" (#) используется в C не для комментариев, а для таких хитрых слов как define, include и пр. т.е., если вы хотите сделать дефайн или подключить файл, то вы обязаны поставить этот символ перед соответствующим словом.
однострочные комментарии (до конца строки) в C оформляются двойным бэкслешем (//), многострочные так: /*текст комментария*/.

но только не надо считать меня красноглазым насильником - я вообще-то с пасквиля начинал, и больше всего его люблю)

вдогонку вам инициализация TIM4 на 1 миллисекунду (@16MHz) с прерываниями и авторелоадом:
Код:
TIM4->SR1&=~TIM4_SR1_UIF;  //Сбросим признак прерывания
TIM4->PSCR = TIM4_Prescaler_128; // Prescaler
TIM4->ARR = 124; // Auto-reload value
TIM4->IER |= TIM4_IER_UIE; // Enable interrupt
TIM4->CR1 |= TIM4_CR1_CEN; // Enable timer

на STM8S попроще - вот на L'ках постоянно забудешь кому-нибудь clock включить и потом выносишь мозг: "почему не работает?!"))

_________________
don't believe what u see,
don't believe what u read


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Чт ноя 10, 2011 07:50:31 
Открыл глаза

Зарегистрирован: Вт мар 18, 2008 10:29:04
Сообщений: 43
Рейтинг сообщения: 0
Спасибо Всем откликнувшимся - буду пока игнорировать "сон" таймера - буду писать дальше и ждать когда придет USB отладчик
berrymorr по поводу я имел в виду:

//#include "stm8_interrupt_vector.c";

если код:

#include "STM8S207K.h";
//#include "stm8_interrupt_vector.c";
void CLK_Init (void) //Функция инициализации тактового генератора


команда #include "stm8_interrupt_vector.c" закоментирована, то есть не выполняется - компилятор не ругается
, а если убрать // - разрешаем выполнение этой строки -подключение модуля "stm8_interrupt_vector.c" :

#include "STM8S207K.h";
#include "stm8_interrupt_vector.c";
void CLK_Init (void) //Функция инициализации тактового генератора

Компилятор ругается:
"#error clnk Debug\l-bio.lkf:67 Debug\stm8_interrupt_vector.o: symbol __vectab multiply defined (Debug\main.o)"

Может кто подскажет чего ему нехватает - непойму почему он ругается вообще на main.o? Там и ругаться то не на что.
Вообще я, честно говоря первый раз работаю с STM - до этого я сидел на Пиках и Атмелах - там иначе все реализовывал.

листинг stm8_interrupt_vector.c, где смущает, что 0x82 везде:

/* BASIC INTERRUPT VECTOR TABLE FOR STM8 devices
* Copyright (c) 2007 STMicroelectronics
*/

typedef void @far (*interrupt_handler_t)(void);

struct interrupt_vector {
unsigned char interrupt_instruction;
interrupt_handler_t interrupt_handler;
};

@far @interrupt void NonHandledInterrupt (void)
{
/* in order to detect unexpected events during development,
it is recommended to set a breakpoint on the following instruction
*/
return;
}

extern void _stext(); /* startup routine */

struct interrupt_vector const _vectab[] = {
{0x82, (interrupt_handler_t)_stext}, /* reset */
{0x82, NonHandledInterrupt}, /* trap */
{0x82, NonHandledInterrupt}, /* irq0 */
{0x82, NonHandledInterrupt}, /* irq1 */
{0x82, NonHandledInterrupt}, /* irq2 */
{0x82, NonHandledInterrupt}, /* irq3 */
{0x82, NonHandledInterrupt}, /* irq4 */
{0x82, NonHandledInterrupt}, /* irq5 */
{0x82, NonHandledInterrupt}, /* irq6 */
{0x82, NonHandledInterrupt}, /* irq7 */
{0x82, NonHandledInterrupt}, /* irq8 */
{0x82, NonHandledInterrupt}, /* irq9 */
{0x82, NonHandledInterrupt}, /* irq10 */
{0x82, NonHandledInterrupt}, /* irq11 */
{0x82, NonHandledInterrupt}, /* irq12 */
{0x82, NonHandledInterrupt}, /* irq13 */
{0x82, NonHandledInterrupt}, /* irq14 */
{0x82, NonHandledInterrupt}, /* irq15 */
{0x82, NonHandledInterrupt}, /* irq16 */
{0x82, NonHandledInterrupt}, /* irq17 */
{0x82, NonHandledInterrupt}, /* irq18 */
{0x82, NonHandledInterrupt}, /* irq19 */
{0x82, NonHandledInterrupt}, /* irq20 */
{0x82, NonHandledInterrupt}, /* irq21 */
{0x82, NonHandledInterrupt}, /* irq22 */
{0x82, NonHandledInterrupt}, /* irq23 */
{0x82, NonHandledInterrupt}, /* irq24 */
{0x82, NonHandledInterrupt}, /* irq25 */
{0x82, NonHandledInterrupt}, /* irq26 */
{0x82, NonHandledInterrupt}, /* irq27 */
{0x82, NonHandledInterrupt}, /* irq28 */
{0x82, NonHandledInterrupt}, /* irq29 */
};


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Чт ноя 10, 2011 08:15:49 
Открыл глаза

Зарегистрирован: Вт мар 18, 2008 10:29:04
Сообщений: 43
Рейтинг сообщения: 0
Цитата:
чтобы разрешить TIM1 дрыгать ногами:
TIM1_BKR|=TIM1_BKR_MOE; //enable pwmoutputs
чтобы запретить:
TIM1_BKR&=(uint8_t)(~TIM1_BKR_MOE); //disable pwmoutputs
чтобы переключить:
TIM1_BKR^=TIM1_BKR_MOE; //toggle pwmoutputs

Вопрос такой: если я хочу использовать выходы порта PC1...PC3 как выход ШИМ каналов таймера 1 для одновременного использования
настройки такие?:
TIM1_BKR|=TIM1_BKR_MOE | TIM1_BKR_AOE; //enable pwmoutputs
TIM1_CCER1|=TIM1_CCER1_CC2E | TIM1_CCER1_CC1E;
TIM1_CCER2|=TIM1_CCER2_CC3E;
TIM1_CCMR1=0x60;
TIM1_CCMR2=0x60;
TIM1_CCMR3=0x60;


И могут ли они работать одновременнно?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Пт ноя 11, 2011 11:05:45 
Первый раз сказал Мяу!

Зарегистрирован: Вт сен 20, 2011 14:51:26
Сообщений: 21
Рейтинг сообщения: 0
Добрый день.

Имею платку stm8s-discovery, поставил IAR 1.3. Столкнулся со странной проблемой. Пункт меню "Project-Downoad and Debug" работает, а просто залить прошивку без дебага не получается, т.к. Project-Downoad-Download Active Application не активен


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Вс ноя 20, 2011 12:42:45 
Открыл глаза
Аватар пользователя

Зарегистрирован: Вс сен 11, 2011 19:34:21
Сообщений: 59
Откуда: Белгород
Рейтинг сообщения: 0
Народ подскажите пожалуйста есть в компиляторе для ASMa псевдокоманды типа:
- ORG;
- BIT;
- DATA;
- Const и т.д. ?

А так же можно ли задавать числа не только в десятичной с.с. ?

_________________
Практика, практика и еще раз Практика !


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Пн ноя 21, 2011 10:18:52 
Опытный кот
Аватар пользователя

Зарегистрирован: Вт янв 20, 2009 14:49:08
Сообщений: 890
Откуда: Гондурас, Мурманск
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Об ассемблере STM8 написано в руководстве пользователя UM0144 с сайта www.st.com
Описанные там директивы ассемблера справедливы для STVD. У Космика и Резонанса они немного отличаются. Транслятор Ассемблера у st несколько убогий. У космика удобнее и понятнее (лично для меня).

_________________
- Если вы такие умные, то почему тогда строем не ходите?
ἓν οἶδα ὅτι οὐδὲν οἶδα (с) Σωκράτης


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Пн ноя 21, 2011 12:44:27 
Сверлит текстолит когтями
Аватар пользователя

Карма: 4
Рейтинг сообщений: 30
Зарегистрирован: Ср янв 05, 2011 16:25:15
Сообщений: 1163
Рейтинг сообщения: 0
DrWatson писал(а):
...Транслятор Ассемблера у st несколько убогий...
... не просто убогий, а глючный - наступил на эти грабли и полностью перешел на Космик. Камни весьма неплохие, а вот баги STVD похоже вечны :))

ЗЫ. Хорошо хоть для STM32 выбор побогаче ...


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 2561 ]     ... , , , 10, , , ...  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y