10.02.2014, 23:13
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,627
Сказал спасибо: 115
Сказали Спасибо 813 раз(а) в 590 сообщении(ях)
|
Re: FAQ по STM8
Сообщение от omercury
|
Вот такие, от 5в.
Другие пока нормальный драйвер не доделаю жалею.)))
|
Почти такой же, как у нас используются. А ток вообще офигенный (1.7А). Как оно там у вас не спалило еще ничего?
__________________
Союз Советских Социалистических Округов Северной Америки
|
|
|
|
10.02.2014, 23:26
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: FAQ по STM8
Нижний ключ - IRF7102, верхний - IRF7316 в SO8. Даже не нагрелись...
Последний раз редактировалось omercury; 10.02.2014 в 23:35.
|
|
|
Сказали "Спасибо" omercury
|
|
|
11.02.2014, 02:56
|
|
Заблокирован
Регистрация: 25.04.2013
Сообщений: 1,431
Сказал спасибо: 0
Сказали Спасибо 385 раз(а) в 254 сообщении(ях)
|
Re: FAQ по STM8
Сообщение от eddy
|
не работает ШИМ на канале 1 таймера 2
|
Работает, и даже в железе!
Код:
|
INTERRUPT_HANDLER(TIM2_UPD_OVF_BRK_IRQHandler, 13)
{
if(TIM2-›SR1 && TIM2_SR1_UIF)
{
__BCPL ((uint8_t*)&(GPIOC-›ODR), 4);
}
TIM2-›SR1 &= ~TIM2_SR1_UIF;
}
uint8_t SpS = 255, Ustepping = 2;
TIM2-›PSCR = 4; // 1MHz
SpS ››= Ustepping; // divide to microsteps
TIM2-›ARRH = SpS ›› 8; // set speed
TIM2-›ARRL = SpS - 1 ;
SpS ››= 1; // divide to 2 - 50% duty cycle
TIM2-›CCR1H = SpS ›› 8;
TIM2-›CCR1L = SpS;
// channel 1 generates PWM pulses
TIM2-›CCMR1 |= (TIM2_CCMR_OCM_1 | TIM2_CCMR_OCM_2); // PWM Mode1
TIM2-›CCER1 |= TIM2_CCER1_CC1E; // Capture/Compare 1 output enable
TIM2-›CR1 |= TIM2_CR1_URS; // Update Request Source
TIM2-›IER |= TIM2_IER_UIE; // Upload Interrupt Enable
TIM2-›CR1 |= TIM2_CR1_CEN | TIM2_CR1_ARPE; // Counter Enable
rim(); |
Частота ШИМ - 15,8730 кГц, частота инверсии в прерывании - 7,9365 кГц.
|
|
|
Сказали "Спасибо" nahimovv
|
|
|
11.02.2014, 09:25
|
|
Почётный гражданин KAZUS.RU
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
|
Re: FAQ по STM8
Сообщение от nahimovv
|
Работает, и даже в железе!
Код:
|
INTERRUPT_HANDLER(TIM2_UPD_OVF_BRK_IRQHandler, 13)
{
if(TIM2-›SR1 && TIM2_SR1_UIF)
{
__BCPL ((uint8_t*)&(GPIOC-›ODR), 4);
}
TIM2-›SR1 &= ~TIM2_SR1_UIF;
}
uint8_t SpS = 255, Ustepping = 2;
TIM2-›PSCR = 4; // 1MHz
SpS ››= Ustepping; // divide to microsteps
TIM2-›ARRH = SpS ›› 8; // set speed
TIM2-›ARRL = SpS - 1 ;
SpS ››= 1; // divide to 2 - 50% duty cycle
TIM2-›CCR1H = SpS ›› 8;
TIM2-›CCR1L = SpS;
// channel 1 generates PWM pulses
TIM2-›CCMR1 |= (TIM2_CCMR_OCM_1 | TIM2_CCMR_OCM_2); // PWM Mode1
TIM2-›CCER1 |= TIM2_CCER1_CC1E; // Capture/Compare 1 output enable
TIM2-›CR1 |= TIM2_CR1_URS; // Update Request Source
TIM2-›IER |= TIM2_IER_UIE; // Upload Interrupt Enable
TIM2-›CR1 |= TIM2_CR1_CEN | TIM2_CR1_ARPE; // Counter Enable
rim(); |
Частота ШИМ - 15,8730 кГц, частота инверсии в прерывании - 7,9365 кГц.
|
Тут вапче можно раз и навсегда обнулить старшие регистры капчи и авторелоада. uint8_t пихать вправо на 8 бит - оно в ноль и превратится. Но при этом решение становится частным, уход от общего - не комильфо.
__________________
С уважением,
Vic / ut1wpr
|
|
|
|
11.02.2014, 09:38
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,627
Сказал спасибо: 115
Сказали Спасибо 813 раз(а) в 590 сообщении(ях)
|
Re: FAQ по STM8
Посыпаю голову пеплом...
Я так и думал, что "косяк" где-то из-за меня! Так оно и вышло: в stm8l.h, где объявляются регистры, я для TIM2 неправильно адреса выставил (где-то опечатался, и пошел по порядку неправильно нумеровать). Сейчас подправил, дважды проверил по даташиту - все ОК!
При SpS = 16000, Ustepping=4 получаю 999.5Гц, что вполне прилично, учитывая, что кварца на макетке нет.
Кстати, странно: добавил в отладку вывод значений регистров, а там - мусор какой-то. Вроде как, судя по даташиту, регистры CCR1, ARR, IER и CR1 сразу меняться должны. А получается - фигвам!
UPD: крутятся-вертятся!
__________________
Союз Советских Социалистических Округов Северной Америки
Последний раз редактировалось eddy; 11.02.2014 в 14:24.
Причина: upd
|
|
|
|
11.02.2014, 17:18
|
|
Заблокирован
Регистрация: 25.04.2013
Сообщений: 1,431
Сказал спасибо: 0
Сказали Спасибо 385 раз(а) в 254 сообщении(ях)
|
Re: FAQ по STM8
Сообщение от eddy
|
в stm8l.h, где объявляются регистры, я для TIM2 неправильно адреса выставил
|
"То ли лыжи не удут, то ли я мало выпил!"(С)
Каким боком stm8l.h к STM8S003? И зачем адреса выставлять?
|
|
|
|
11.02.2014, 17:46
|
|
Почётный гражданин KAZUS.RU
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
|
Re: FAQ по STM8
Сообщение от Easyrider83
|
Слово напруга - лексикон пьяных электриков
|
По твоему все украинцы - пьяные электрики? По украински слово "напруга" - напряжение.
__________________
С уважением,
Vic / ut1wpr
|
|
|
|
11.02.2014, 17:49
|
|
Почётный гражданин KAZUS.RU
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
|
Re: FAQ по STM8
Сообщение от nahimovv
|
"То ли лыжи не удут, то ли я мало выпил!"(С)
Каким боком stm8l.h к STM8S003? И зачем адреса выставлять?
|
Если честно, я даже не глядел, на каком камне упражнения, был уверен, что на 003. А тут совсем другой огород, элька...
eddy, там есть разница...
__________________
С уважением,
Vic / ut1wpr
|
|
|
|
11.02.2014, 18:32
|
|
Заблокирован
Регистрация: 25.04.2013
Сообщений: 1,431
Сказал спасибо: 0
Сказали Спасибо 385 раз(а) в 254 сообщении(ях)
|
Re: FAQ по STM8
На ИзыйдиЭлектроникс всё прояснилось - виноваты пингвины и "для STM8 никаких заранее подготовленных заголовочных файлов не было. Тащить stm8s.h из STL — нонсенс (там через одно место сделаны определения)."!
Хотя, а что мешает хедер ручками поправить, если там чего-то нет? В stm8l.h не лучше, тоже ручками придётся поработать.
|
|
|
|
11.02.2014, 18:40
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,627
Сказал спасибо: 115
Сказали Спасибо 813 раз(а) в 590 сообщении(ях)
|
Re: FAQ по STM8
Сообщение от nahimovv
|
зачем адреса выставлять?
|
Ну не писать же (unsigned char*)0xXXXX = 0xXX! Вот и добавлял в заголовочный файл что-то вроде
Код:
|
#define TIM2_CR1 *(unsigned char*)0x5300
#define TIM2_IER *(unsigned char*)0x5301
#define TIM2_SR1 *(unsigned char*)0x5302
... |
Из SPL спереть не получилось: там через задницу сделано.
Сообщение от ut1wpr
|
элька
|
Не, не элька, просто название такое у заголовочного файла: основу спер откуда-то из примеров, а потом расширил.
Сообщение от nahimovv
|
виноваты пингвины
|
Пингвины не виноваты. Это я - рукожопый. Невнимательно файл заполнял.
Сообщение от nahimovv
|
В stm8l.h не лучше, тоже ручками придётся поработать.
|
Вот и "поработал". Но нашел косяк и исправил.
__________________
Союз Советских Социалистических Округов Северной Америки
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 23:52.
|
|