01.11.2013, 18:15
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: FAQ по STM8
Сообщение от VaStaNi
|
Тады смотри ТУТ вариант
|
Уж если и извращаться на асме то не на ST'шном . Попробуйте от Cosmic, будете благодарить.
Имхо я не пойму так же извращений с обрезанием.
Ну не тянет у вас ноут, купите нормальный. А на "не тянущем" можно кодописательством и в редакторе заниматься. Компилить, прошивать/отлаживать на стационаре или мощном ноутбуке .
__________________
Осторожно , злой кот
|
|
|
|
19.11.2013, 19:41
|
|
Временная регистрация
Регистрация: 18.04.2011
Сообщений: 84
Сказал спасибо: 23
Сказали Спасибо 6 раз(а) в 4 сообщении(ях)
|
Re: FAQ по STM8
Добрый вечер!
Плата. Попробовал работать с PWM. наткнулся на непонятку. При запуске МК PWM не работает - светодиод не светит.(осциллографом посмотреть нету возможности), но если пройти пошаговую отладку и запустить на цикле на выполнение(кнопка GO) , то все работает и яркость меняется. Выключаю отладку опять не работает .Опять включаю отладку сразу GO без результата.
Работает только если пройти пошагово а потом нажать GO.
В чем проблема подскажите пожалуйста.
Код:
PHP код:
|
#include "stm8l15x.h"
#include "iostm8l152c6.h"
int main()
{
CLK_CKDIVR = 0;
CLK_ICKCR_HSION=1;
CLK-›SWR = 0x01;
PD_DDR_bit.DDR2=1;
PD_CR1_bit.C12=1;
PD_CR2_bit.C22=1;
CLK_PCKENR2_bit.PCKEN21 = 1; //Включаем тактирование таймера 1
TIM1_CCMR1_bit.OC1M=6; //Режим работы
TIM1_BKR_bit.MOE=1;
TIM1_BKR_bit.OSSR=0;
TIM1_PSCRH = 0;
TIM1_PSCRL = 7; //Делитель на 8
TIM1_ARRH =(1000)››8; //Частота переполнений = 16М / 8 / 1000 = 2000 Гц
TIM1_ARRL =(1000)&0x00ff;
TIM1_CCR1H=(1000)››8;
TIM1_CCR1L=(1000)&0x00ff; // Заполнение 50%
TIM1_CCER1_bit.CC1NE=0;
TIM1_CCER1_bit.CC1E=1; // разрешение канала
TIM1_CR1_bit.URS = 1; //Прерывание только по переполнению счетчика
TIM1_EGR_bit.UG = 1; //Вызываем Update Event
TIM1_IER_bit.UIE = 1; //Разрешаем прерывание
TIM1_CR1_bit.CEN=1;
while(1)
{
//PD_ODR_bit.ODR2 = 1;
}
}
|
|
|
|
|
19.11.2013, 20:34
|
|
Заблокирован
Регистрация: 25.04.2013
Сообщений: 1,431
Сказал спасибо: 0
Сказали Спасибо 385 раз(а) в 254 сообщении(ях)
|
Re: FAQ по STM8
Исключите всё ненужное!
Код:
|
CLK_CKDIVR = 0;
// CLK_ICKCR_HSION=1;
// CLK-›SWR = 0x01;
PD_DDR_bit.DDR2=1;
PD_CR1_bit.C12=1;
PD_CR2_bit.C22=1;
CLK_PCKENR2_bit.PCKEN21 = 1; //Включаем тактирование таймера 1
TIM1_CCMR1_bit.OC1M=6; //Режим работы
TIM1_BKR_bit.MOE=1;
// TIM1_BKR_bit.OSSR=0;
TIM1_PSCRH = 0;
TIM1_PSCRL = 7; //Делитель на 8
TIM1_ARRH =(1000)››8; //Частота переполнений = 16М / 8 / 1000 = 2000 Гц
TIM1_ARRL =(1000)&0x00ff;
TIM1_CCR1H=(500)››8;
TIM1_CCR1L=(500)&0x00ff; // Заполнение 50% !!!!!!!!!!!!!!!!!!
// TIM1_CCER1_bit.CC1NE=0;
TIM1_CCER1_bit.CC1E=1; // разрешение канала
// TIM1_CR1_bit.URS = 1; //Прерывание только по переполнению счетчика
// TIM1_EGR_bit.UG = 1; //Вызываем Update Event
// TIM1_IER_bit.UIE = 1; //Разрешаем прерывание
TIM1_CR1_bit.CEN=1; |
|
|
|
Сказали "Спасибо" nahimovv
|
|
|
19.11.2013, 21:24
|
|
Временная регистрация
Регистрация: 18.04.2011
Сообщений: 84
Сказал спасибо: 23
Сказали Спасибо 6 раз(а) в 4 сообщении(ях)
|
Re: FAQ по STM8
Спасибо помогло.
Но возник другой ступор . Цикл проходит всего один раз и потом зависает на подпрограмме задержки (не приходит прерывания от TIM4).
Помогите пожалуйста еще разок.
Код задержки не мой с библиотеки стм.
Код:
PHP код:
|
void delay_ms(u16 n_ms)
{
CLK_PCKENR1_bit.PCKEN12=1;
//Init TIMER 4 prescaler: / (2^6) = /64
TIM4_PSCR = 6;
// HSI div by 1 --› Auto-Reload value: 16M / 64 = 1/4M, 1/4M / 1k = 250
TIM4_ARR = 250;
// Counter value: 2, to compensate the initialization of TIMER
TIM4_CNTR = 2;
// clear update flag
TIM4_SR1_UIF=0;
// Enable Counter
TIM4_CR1_CEN=1;
while(n_ms--)
{
while(TIM4_SR1_UIF == 0);
TIM4_SR1_UIF=0;
}
// Disable Counter
TIM4_CR1_CEN=0;
CLK_PCKENR1_bit.PCKEN12=0;
}
|
Цикл:
PHP код:
|
while(1)
{
for (i=1;1000;i++)
{
TIM1_CCR1H=(i)››8;
TIM1_CCR1L=(i)&0x00ff;
delay_ms(10);
}
for (i=1000;1;i--)
{
TIM1_CCR1H=(i)››8;
TIM1_CCR1L=(i)&0x00ff;
delay_ms(10);
}
}
|
Проходит первый for и зацикливается.
Подпрограмму задержки использовал раньше не было такого.
|
|
|
|
19.11.2013, 21:34
|
|
Гражданин KAZUS.RU
Регистрация: 05.04.2009
Сообщений: 976
Сказал спасибо: 35
Сказали Спасибо 155 раз(а) в 134 сообщении(ях)
|
Re: FAQ по STM8
а так for можно разве использовать
Цитата:
|
for (действие до начала цикла;
условие продолжения цикла;
действия в конце каждой итерации цикла)
|
|
|
|
|
19.11.2013, 21:37
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: FAQ по STM8
Uvavan, скиньте листинг сего участка https://kazus.ru/forums/showpost.php...&postcount=892
в архиве . Если не трудно...
__________________
Осторожно , злой кот
|
|
|
|
19.11.2013, 22:07
|
|
Заблокирован
Регистрация: 25.04.2013
Сообщений: 1,431
Сказал спасибо: 0
Сказали Спасибо 385 раз(а) в 254 сообщении(ях)
|
Re: FAQ по STM8
Сообщение от oleg110592
|
а так for можно разве использовать
|
Там и варнинг светится, только кто на него внимания обращает.
|
|
|
|
19.11.2013, 22:26
|
|
Заблокирован
Регистрация: 25.04.2013
Сообщений: 1,431
Сказал спасибо: 0
Сказали Спасибо 385 раз(а) в 254 сообщении(ях)
|
Re: FAQ по STM8
Сообщение от dosikus
|
скиньте листинг сего участка
|
Тебя ещё интересуют ИАР-извращения?
Дык, я ж на ИзыйдиЭлектроникс костыли выкладывал, поищи.
|
|
|
|
19.11.2013, 23:03
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Re: FAQ по STM8
Сообщение от oleg110592
|
а так for можно разве использовать
|
В языке Си можно всё, на что вообще способен проц общего назначения, однако, это не значит, что это всё и нужно тоже. Такой for тоже может быть, только нафига там "i=1000"?
__________________
There's always more than one way to skin a cat.
|
|
|
|
19.11.2013, 23:10
|
|
Вид на жительство
Регистрация: 30.07.2009
Адрес: SPb, RU
Сообщений: 382
Сказал спасибо: 81
Сказали Спасибо 119 раз(а) в 92 сообщении(ях)
|
Re: FAQ по STM8
Сообщение от tempora
|
нафига там "i=1000"?
|
В качестве комментария?
И, по моему i будет равно 1001 после первого цикла.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 19:07.
|
|