Re: Программирование STM8
Добавлено: Чт июн 11, 2015 22:45:28
поделитесь?
Посмеялся. Делать мне нечего, у меня TCXO на 16,368М к STM8S903 прикручен. А невелика разница.a5021 писал(а):кварц на 16.384
Лучше галстуком хрустеть и ардуино-арифмометром скрипеть.oleg110592 писал(а):Посмотрите внимательно RM по TIM1 - то что на картинке сделать вполне можно.
Референс прочитайте, хоть один раз! А других приплетать не нужно.a5021 писал(а):Вы серьезно считаете, что я не вижу в чем тут дело? И есть у меня ощущение, что не только я.
Всей троицой, что-ли, мозговой штурм устраивали? Показывайте, какую мышь родила эта гора.dosikus писал(а):a5021, вы скучный, тупой ардуиновод-теоретик. Все уже работает.
Надо же, как вовремя он там оказался. Ну это ли не чудо?Kinder_Surprise писал(а):Посмеялся. Делать мне нечего, у меня TCXO на 16,368М к STM8S903 прикручен. А невелика разница.
Это не я, не он, не мы и не гора. Это ребята из STM.a5021 писал(а):Показывайте, какую мышь родила эта гора.
Нет, не чудо. Это страница даташита, который вы упорно продолжаете игнорировать.Ну это ли не чудо?
Сможете одолеть самостоятельно?17.3.7 Repetition down-counter
Section 17.3: TIM1 time base unit describes how the UEV is generated with respect to
counter overflows/underflows. It is generated only when the repetition down-counter
reaches zero. This can be useful while generating PWM signals.
This means that data are transferred from the preload registers to the shadow registers
(TIM1_ARR auto-reload register, TIM1_PSCR prescaler register, and TIM1_CCRx
capture/compare registers in compare mode) every ‘n’ counter overflow or underflow, where
N is the value in the TIM1_RCR repetition counter register.
The repetition down-counter is decremented:
At each counter overflow in up-counting mode
At each counter underflow in down-counting mode
At each counter overflow and at each counter underflow in center-aligned mode.
Although this limits the maximum number of repetitions to 128 PWM cycles, it makes it
possible to update the duty cycle twice per PWM period. When refreshing compare
registers only once per PWM period in center-aligned mode, maximum resolution is
2 x tCK_PSC due to the symmetry of the pattern.
The repetition down-counter is an auto-reload type, the repetition rate of which is
maintained as defined by the TIM1_RCR register value (refer to Figure 42). When the UEV
is generated by software (by setting the UG bit in the TIM1_EGR register) or by hardware
(through the clock/trigger controller), it occurs immediately irrespective of the value of the
repetition down-counter. The repetition down-counter is reloaded with the content of the
TIM1_RCR register.
Ребята из STM прикрутили вам "TCXO на 16,368М к STM8S903" ? Во дают! Но код, как я понимаю, велели никому не показывать? Или они его еще вам не дописали? Код. Ну тот, по которому вы картинки снимали.Kinder_Surprise писал(а):Это не я, не он, не мы и не гора. Это ребята из STM.
Из мелочей соткана картина мира. Как же я могу видеть суть ваших вещей, если вы не показываете ни сути, ни самих вещей? Я не прорицатель и не всевидящий.Kinder_Surprise писал(а):Вот так за своими постоянными мелочными придирками вы сути вещей и не видите.
На обработчик прерывания хочу посмотреть, который 17-ю тактами всю работу делает. Очень уж мне этот рисунок в душу запал. Как-то все-таки долго вы его дописываете. Помощь нужна?И зачем вам код?
Как вы себе представляете код, который в два раза короче нуля строк ? Короче, кода нет, зато так удачно материализовавшийся TCXO есть. К утру-то хоть допишете? Досикус сказал, что там всего-то несколько строк. И у вас такой запор с этим?Kinder_Surprise писал(а):Напишите свой, в два раза короче. Что мешает?
Все пи****сы, а я — д’Артаньян — приоритетная жизненная установка чуть менее чем всего населения этой планеты, девиз небыдла.
Небыдло — подвид быдла, в силу ряда субъективных причин не считающий себя таковым. Отличается уверенностью в своей явной богоизбранности и в определенном превосходстве над остальными (хотя 99% небыдла в лучшем случае превосходит только своего соседа алкаша, и то — далеко не факт что).
Мышление небыдла
В отсутствие быдла небыдло чахнет и увядает. Причина проста — не с кем себя любимого сравнивать, воздвигая пьедестал собственной значимости. Впрочем, у продвинутого небыдла всегда найдется объяснение (по Фрейду, по Юнгу, по Адлеру или даже по Кащенко), почему некоторые окружающие суть гадкое и мерзкое быдло, кем бы они ни были на самом деле. У психологов это называется «рационализация».
Вот набросок. Для понимания хватит.oleg110592 писал(а):Kinder_Surprise выложите код пожалуйста - полезно в этой теме будет.
Код: Выделить всё
volatile uint8_t count = 0;
uint8_t data_TIM_ARR[] = {0, 127, 255};
uint8_t data_ADC[3];
Код: Выделить всё
TIM1->ARRH = 0; //Частота переполнений
TIM1->ARRL = 255;
TIM1->CCR1H = 0; // Pulse_Output = ARR - CCR1
TIM1->CCR1L = (uint8_t) 127;
TIM1->RCR = 7;
TIM1->CCMR1 |= (TIM1_CCMR_OCM_1 | TIM1_CCMR_OCM_2 | TIM1_CCMR_OCxPE); // PWM Mode1
TIM1->CR1 |= TIM1_CR1_URS;
TIM1->EGR |= TIM1_EGR_UG; // Update Generation
nop();
nop();
TIM1->SR1 = 0;
TIM1->IER |= TIM1_IER_UIE;
TIM1->CCER1 |= TIM1_CCER1_CC1E; // Compare Mode enable
TIM1->BKR |= TIM1_BKR_MOE;
TIM1->CR1 |= (TIM1_CR1_CEN | TIM1_CR1_ARPE);
__enable_interrupt();
Код: Выделить всё
INTERRUPT_HANDLER(TIM1_UPD_OVF_TRG_BRK_IRQHandler, 11)
{
TIM1->CCR1L = data_TIM_ARR[count];
data_ADC[count] = ADC1->DRL;
ADC1->CR1 |= ADC1_CR1_ADON;
count++;
if(count > 2) count = 0;
TIM1->SR1 = 0;
}