07.02.2011, 18:18
|
|
Вид на жительство
Регистрация: 21.11.2009
Сообщений: 342
Сказал спасибо: 4
Сказали Спасибо 149 раз(а) в 66 сообщении(ях)
|
Re: STM8(S/L), первые впечатления
в Cosmic где-то есть _delay_us, _delay_ms ?
|
|
|
|
07.02.2011, 19:32
|
|
Прописка
Регистрация: 15.11.2007
Адрес: СПБ
Сообщений: 214
Сказал спасибо: 37
Сказали Спасибо 42 раз(а) в 34 сообщении(ях)
|
Re: STM8(S/L), первые впечатления
Их там нет. Нужно подключить delay.h и delay.c из комплекта для дискавери
|
|
|
|
07.02.2011, 19:46
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: STM8(S/L), первые впечатления
Я в свое время delay.h и delay.c не нашел.
В общем простая программная задержка - https://kazus.ru/forums/showpost.php...&postcount=636
|
|
|
|
07.02.2011, 19:55
|
|
Прописка
Регистрация: 15.11.2007
Адрес: СПБ
Сообщений: 214
Сказал спасибо: 37
Сказали Спасибо 42 раз(а) в 34 сообщении(ях)
|
Re: STM8(S/L), первые впечатления
В
stm8l-discovery_dev\Project\Discover (в inc и src)
лежат (из скачанного с сайта). Там есть исходники для ПО, зашитого в контроллер для демонстрации - кладезь полезностей
|
|
|
|
07.02.2011, 20:02
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: STM8(S/L), первые впечатления
Сообщение от a-fisher
|
В
stm8l-discovery_dev\Project\Discover (в inc и src)
|
Забавно. У меня там по два файла и никаких delay.h там нет. При этом проект собирается. Прицепите их сюда, интересно посмотреть.
Последний раз редактировалось Falconist; 13.04.2011 в 23:55.
|
|
|
|
07.02.2011, 22:57
|
|
Вид на жительство
Регистрация: 21.11.2009
Сообщений: 342
Сказал спасибо: 4
Сказали Спасибо 149 раз(а) в 66 сообщении(ях)
|
Re: STM8(S/L), первые впечатления
Цитата:
|
А тому кто подскажет как сделать инлайновую функцию на голом асме и не потерять параметр будет респект и уважуха.
|
хм, попробовал просто:
Код:
|
#define _delay_us( us ) { _asm("LOOP: \n decw X \n jrne LOOP \n", us);
} |
при вызове транслируется в :
Код:
|
2826 ; 6 _delay_us(100);
2828 0000 ae0064 ldw x,#100
2830 0003 LOOP:
2831 0003 5a decw X
2832 0004 26fd jrne LOOP |
то есть Х загружается перед инлайном, должно быть все ОК
Последний раз редактировалось Falconist; 13.04.2011 в 23:55.
|
|
|
|
07.02.2011, 23:52
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: STM8(S/L), первые впечатления
Сообщение от qwerky
|
хм, попробовал просто:
|
Странная конструкция. Загрузки в X нет, а ldw x,#100 есть. Чудеса.
Я не люблю когда что то само происходит. Особенно в асмовых вставках.
Последний раз редактировалось Falconist; 13.04.2011 в 23:55.
|
|
|
|
08.02.2011, 01:21
|
|
Вид на жительство
Регистрация: 21.11.2009
Сообщений: 342
Сказал спасибо: 4
Сказали Спасибо 149 раз(а) в 66 сообщении(ях)
|
Re: STM8(S/L), первые впечатления
Цитата:
|
Странная конструкция. Загрузки в X нет, а ldw x,#100 есть.
|
читайте доку на _asm("", param1, param2, ...). Там можно передавать параметры. Первый идет в A (если 8-битный) или в Х (если явно указано что 16-битный), остальные - в стек.
что-то непонятное они намутили в US(). Кроме того, при 16МГц задержку больше 12мс не получить. Лучше delay_ms оформить как обычную функцию:
Код:
|
#define US(us) ( F_CPU / 3000000.0 * us )
#define MS(ms) US(ms * 1000) // maximum 12ms
#define _delay( loops ) \
_asm("$N: \n decw X \n jrne $L \n nop", (unsigned int)loops);
#define _delay_us(us) _delay(US(us))
#define delay_us(us) _delay(US(us))
#define _delay_ms(ms) delay_ms(ms)
void delay_ms( unsigned int ms ) {
while (ms--) delay_us( 1000 );
} |
Последний раз редактировалось Falconist; 13.04.2011 в 23:55.
|
|
|
|
08.02.2011, 02:05
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: STM8(S/L), первые впечатления
Сообщение от qwerky
|
Там можно передавать параметры.
|
Да, уже нашел.
Сообщение от qwerky
|
что-то непонятное они намутили в US(). Кроме того, при 16МГц задержку больше 12мс не получить.
|
Кто они?
Последний раз редактировалось Falconist; 13.04.2011 в 23:54.
|
|
|
|
08.02.2011, 08:34
|
|
Вид на жительство
Регистрация: 21.11.2009
Сообщений: 342
Сказал спасибо: 4
Сказали Спасибо 149 раз(а) в 66 сообщении(ях)
|
Re: STM8(S/L), первые впечатления
Последний раз редактировалось Falconist; 13.04.2011 в 23:54.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 13:03.
|
|