Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 21.09.2012, 19:50  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: FAQ по STM8

Кто еще горит? Хочется всех разом уличить.
Реклама:
Easyrider83 вне форума  
Непрочитано 22.09.2012, 20:13  
tempora
Почётный гражданин KAZUS.RU
 
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию Re: FAQ по STM8

Сегодня мне тоже Discovery обломилась (с одного барского плеча), вот решил попробовать, что же это за зверь такой, STM8S.

Easyrider83, что, вот такое тоже не работает? :
Код:
#include "iostm8s105c6.h"

#pragma vector=3
__interrupt void AWU2_IRQ_Handler(void){int i = AWU_CSR1;}

void main( void )
{
      // Init CLK
      CLK_ECKR_bit.HSEEN = 1;     // Enable HSE
      CLK_SWCR_bit.SWEN  = 1;     // Enable switching
      CLK_SWR            = 0xB4;  // Select HSE as System Clock
      CLK_CKDIVR         = 0;     // Clock DIVider

      while(CLK_CMSR != 0xB4);    // Wait for clock stabilized

      CLK_CSSR_bit.CSSEN = 1;     // Enable SysClck switching

      // Init GPIO
      // Discovery LED = PD0, active low
      PD_DDR_bit.DDR0 = 1;        //PD0 - as output
      PD_CR1_bit.C10  = 0;        //PD0 - OC
      PD_CR2_bit.C20  = 0;        //PD0 - hi speed

      // AWU setup
      AWU_APR_bit.APR   = 32;         // AWU prescaler
      AWU_TBR_bit.AWUTB = 0x0D;       // AWU time base (somewhat about 1 second)

      // Main code
      while(1)
      {
        PD_ODR_bit.ODR0=~PD_ODR_bit.ODR0;   // toggle LED
        // sleep with AWU
        AWU_CSR1_bit.AWUEN = 1;
        asm("halt");
      }
}
Доки у ST - это ужас, за... мучался искать, что не так - тоже сначала не хотела плата мигать. Оказалось, что флаг прерывания я должон сбрасывать... сам, один, без ансам...
__________________
There's always more than one way to skin a cat.

Последний раз редактировалось tempora; 22.09.2012 в 20:15.
tempora вне форума  
Непрочитано 22.09.2012, 20:26  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: FAQ по STM8

tempora, смогу попробовать только в понедельник. HSE я не использую. И в моем коде разница лишьв том, что бит AWUEN я ставлю только один раз, а вы всякий раз перед сном. Думаете, в этом засада? У вас-то работает?
Easyrider83 вне форума  
Непрочитано 22.09.2012, 21:01  
tempora
Почётный гражданин KAZUS.RU
 
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию Re: FAQ по STM8

Сообщение от Easyrider83 Посмотреть сообщение
Думаете, в этом засада?
Нет, засада не в этом - я так написал лишь для перестраховки - кристалла-то еще не знаю совсем, вот и стремлюсь везде соломки подстелить. Но вот так тоже заработало:
Код:
#include "iostm8s105c6.h"

#pragma vector=3
__interrupt void AWU2_IRQ_Handler(void){int i = AWU_CSR1;}

void main( void )
{
char i;

      // Init CLK
      /*
      CLK_ECKR_bit.HSEEN = 1;     // Enable HSE
      CLK_SWCR_bit.SWEN  = 1;     // Enable switching
      CLK_SWR            = 0xB4;  // Select HSE as Sys clock
      CLK_CKDIVR         = 0;     // Clock DIVider
      */
      CLK_SWR            = 0xE1;  // Select HSI as Sys clock

      while(CLK_CMSR != 0xE1);    // Wait for clock stabilized

      CLK_CSSR_bit.CSSEN = 1;     // Enable SysClck switching

      // Init GPIO
      // Discovery LED = PD0, active low
      PD_DDR_bit.DDR0 = 1;        //PD0 - as output
      PD_CR1_bit.C10  = 0;        //PD0 - OC
      PD_CR2_bit.C20  = 0;        //PD0 - hi speed

      // AWU setup
      AWU_APR_bit.APR    = 32;         // AWU prescaler
      AWU_TBR_bit.AWUTB  = 0x0D;       // AWU time base (somewhat about 1 second)
      AWU_CSR1_bit.AWUEN = 1;         // Enable AWU

      // Main code
      while(1)
      {
        PD_ODR_bit.ODR0=~PD_ODR_bit.ODR0;   // toggle LED
        // sleep with AWU
        asm("halt");
      }
}
__________________
There's always more than one way to skin a cat.
tempora вне форума  
Непрочитано 24.09.2012, 10:04  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: FAQ по STM8

В общем, благодаря Виктору ut1wpr вопрос с AWU закрыт. Итак, подводим итоги:
Код:
  /*AWU INIT*/
  AWU_LSICalibrationConfig(128000); //необходимо для точных временных интервалов. Иначе разброс очень велик
  AWU_Init(AWU_TIMEBASE_1S);
  enableInterrupts();
Обработчик прерывания:
Код:
INTERRUPT_HANDLER(AWU_IRQHandler, 1)
{
  /* In order to detect unexpected events during development,
     it is recommended to set a breakpoint on the following instruction.
  */
  u8 tmp=AWU-›CSR;
}
Далее просто команда Halt();
Easyrider83 вне форума  
Непрочитано 24.09.2012, 10:38  
tempora
Почётный гражданин KAZUS.RU
 
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию Re: FAQ по STM8

Сообщение от Easyrider83 Посмотреть сообщение
Итак, подводим итоги:
  • /*AWU INIT*/
  • Обработчик прерывания:
  • Далее просто команда Halt();
И чем же это отличается от примера выше?
__________________
There's always more than one way to skin a cat.
tempora вне форума  
Непрочитано 24.09.2012, 11:02  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: FAQ по STM8

tempora, а у вас там "букав многа" )))))
Easyrider83 вне форума  
Непрочитано 24.09.2012, 11:07  
tempora
Почётный гражданин KAZUS.RU
 
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию Re: FAQ по STM8

Сообщение от Easyrider83 Посмотреть сообщение
"букав многа"


И всё-таки, что было не так? Флаг забывали сбросить?
__________________
There's always more than one way to skin a cat.
tempora вне форума  
Непрочитано 24.09.2012, 11:34  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: FAQ по STM8

Сообщение от tempora Посмотреть сообщение
И всё-таки, что было не так? Флаг забывали сбросить?
Все проклятые микрочипы. Привык, что камень стартует со следующей после хальта команды. А тут да, надо флажок сбросить. А без файла векторов прерываний он у меня вообще в хард фаулт падал, чем доводил до полного иступления.
Easyrider83 вне форума  
Непрочитано 24.09.2012, 11:49  
tempora
Почётный гражданин KAZUS.RU
 
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию Re: FAQ по STM8

Ясно, спасибо. Надо будет еще калибровку осилить... хотя, 12,5 процентов не так уж и много, может "нуивонафик" сделаю, вместо калибровки.
__________________
There's always more than one way to skin a cat.
tempora вне форума  
 

Закладки

Метки
arm, cortex, stm32, stm8
Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Импульсная зарядка для авто-аккумуляторов (новодел) Falconist Источники питания и свет 1915 14.03.2024 19:56
FAQ (ЧаВО) по PROTEUS для начинающих и не только dosikus Proteus 221 07.03.2024 22:45
STM8(S/L), первые впечатления kison STM8 1423 19.05.2018 19:23
Вопросы и замечания по топику - FAQ по PROTEUS avr123-nm-ru Proteus 291 05.06.2015 20:49
FAQ Импульсный трансформатор alberio Источники питания и свет 87 13.11.2012 18:07


Часовой пояс GMT +4, время: 15:36.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot