19.11.2013, 23:12
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Re: FAQ по STM8
Сообщение от L_0_R
|
по моему i будет равно 1001 после первого цикла.
|
Ошибаетесь.
__________________
There's always more than one way to skin a cat.
|
|
|
|
20.11.2013, 00:07
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: FAQ по STM8
Сообщение от nahimovv
|
Тебя ещё интересуют ИАР-извращения?
Дык, я ж на ИзыйдиЭлектроникс костыли выкладывал, поищи.
|
Не, мне интересно как он работает с битовыми полями, лень проект набивать.
Помнишь я тебе кидал сравнение с Cosmic ?
__________________
Осторожно , злой кот
|
|
|
|
20.11.2013, 00:37
|
|
Заблокирован
Регистрация: 25.04.2013
Сообщений: 1,431
Сказал спасибо: 0
Сказали Спасибо 385 раз(а) в 254 сообщении(ях)
|
Re: FAQ по STM8
Да уже не помню, не суть. В ИАРе всё практически так и осталось, в том числе и с битовыми полями, куй чего. Мне ИАР никогда особо не нравился, но с STM8 выбора то и нет, Cosmic тоже не выход, приходится извращаться и городить костыли.
|
|
|
Сказали "Спасибо" nahimovv
|
|
|
20.11.2013, 00:55
|
|
Вид на жительство
Регистрация: 30.07.2009
Адрес: SPb, RU
Сообщений: 382
Сказал спасибо: 81
Сказали Спасибо 119 раз(а) в 92 сообщении(ях)
|
Re: FAQ по STM8
Сообщение от tempora
|
Ошибаетесь.
|
Тогда i=2?
|
|
|
|
20.11.2013, 01:31
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Re: FAQ по STM8
L_0_R, снова неверно.
__________________
There's always more than one way to skin a cat.
|
|
|
|
20.11.2013, 01:35
|
|
Вид на жительство
Регистрация: 30.07.2009
Адрес: SPb, RU
Сообщений: 382
Сказал спасибо: 81
Сказали Спасибо 119 раз(а) в 92 сообщении(ях)
|
Re: FAQ по STM8
Сообщение от tempora
|
снова неверно
|
Неужели ни разу ни отработает?
|
|
|
|
20.11.2013, 04:17
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.06.2005
Сообщений: 1,389
Сказал спасибо: 19
Сказали Спасибо 210 раз(а) в 156 сообщении(ях)
|
Re: FAQ по STM8
Сообщение от Uvavan
|
Цикл:
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);
}
}
|
|
А разве не так должно быть? Ведь 1 и 1000 вычисляются как true.
PHP код:
|
while(1)
{
for (i=1;i‹=1000;i++)
{
TIM1_CCR1H=(i)››8;
TIM1_CCR1L=(i)&0x00ff;
delay_ms(10);
}
for (i=1000;i›=1;i--)
{
TIM1_CCR1H=(i)››8;
TIM1_CCR1L=(i)&0x00ff;
delay_ms(10);
}
}
|
|
|
|
|
20.11.2013, 09:03
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: FAQ по STM8
Сообщение от nahimovv
|
Да уже не помню, не суть.
|
Вот такая ж .. выходит :
Код:
|
typedef struct
{
unsigned _1ms_elapsed :1;
unsigned adc_enable :1;
unsigned _100ms_elapsed :1;
unsigned REZERVED :5;
}t_flags; |
Код:
|
57 TIM4-›SR1&=~TIM4_SR1_UIF; //Сбросим признак прерывания
\ 000003 7211 5342 BRES L:0x5342, #0x0
58 flag._1ms_elapsed=1;
\ 000007 CE .... LDW X, L:flag
\ 00000A 02 RLWA X, A
\ 00000B AA 00 OR A, #0x0
\ 00000D 02 RLWA X, A
\ 00000E AA 01 OR A, #0x1
\ 000010 02 RLWA X, A
\ 000011 CF .... LDW L:flag, X |
И Cosmic
Код:
|
217 0038 L56:
218 ; 101 if(flag._1ms_elapsed)
220 0038 72010002fb btjf _flag,#0,L56
221 ; 105 flag._1ms_elapsed=0;
223 003d 72110002 bres _flag,#0 |
__________________
Осторожно , злой кот
|
|
|
|
20.11.2013, 09:18
|
|
Частый гость
Регистрация: 30.12.2008
Сообщений: 36
Сказал спасибо: 7
Сказали Спасибо 28 раз(а) в 13 сообщении(ях)
|
Re: FAQ по STM8
В циклах явная ошибка.
Цитата:
|
for (i=1;1000;i++)
|
i будет успешно бежать от 1... и до переполнения, потом снова от 0 и далее. Цикл бесконечный!
Константа ненулевая (1000) всегда вычисляется как True (а вот 0 вычисляется как False - это часто можно использовать для оптимизации), соответственно бежать будет до морковкиного заговенья, не выходя из цикла.
Правильное условие:
Цитата:
|
for (i=1;i ‹ 1001;i++)
|
Во втором цикле:
Цитата:
|
for (i=1000;i › 0;i--)
|
Предпочитаю строгие знаки › и ‹, чем с "равно"
Последний цикл можно сделать таким:
Цитата:
|
for (i=1000;i;i--)
|
Он выполнится 1000 раз
Последний раз редактировалось boydyzy; 20.11.2013 в 10:30.
|
|
|
Сказали "Спасибо" boydyzy
|
|
|
20.11.2013, 11:15
|
|
Временная регистрация
Регистрация: 18.04.2011
Сообщений: 84
Сказал спасибо: 23
Сказали Спасибо 6 раз(а) в 4 сообщении(ях)
|
Re: FAQ по STM8
Ой и правда надо условие поставить. Вот опять моя не внимательность извините.
Main.rar
P.S. Привычка видно с паскаля перескочила (( Всем спасибо.
Последний раз редактировалось Uvavan; 20.11.2013 в 11:49.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 18:46.
|
|