18.03.2011, 21:27
|
|
Гражданин KAZUS.RU
Регистрация: 02.06.2003
Адрес: Челябинск
Сообщений: 545
Сказал спасибо: 10
Сказали Спасибо 341 раз(а) в 202 сообщении(ях)
|
Re: STM8(S/L), первые впечатления
Сообщение от dosikus
|
qwerky, Не компилит...
Код:
|
void send_sw_spi (uint8_t data)
{
uint8_t temp=8;
#asm
xref _temp
PORTC: equ $500A
1$: SLA A
BCCM PORTC,#6
BSET PORTC,#5
BRES PORTC,#5
DEC _temp
JREQ 1$
#endasm
} |
|
Наверное имеет смысл вынести temp за пределы функции. Или нет?
|
|
|
|
18.03.2011, 21:47
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: STM8(S/L), первые впечатления
Сообщение от Bill
|
Наверное имеет смысл вынести temp за пределы функции. Или нет?
|
Не имеет . Не нужна она мне теперь ))
Проще дальше извращаться :
Код:
|
void send_sw_spi (uint8_t data)
{
#asm
PORTC: equ $500A
PUSH A
LD A,#8
1$: SLA (1,SP)
BCCM PORTC,#6
BSET PORTC,#5
BRES PORTC,#5
DEC A
JREQ 1$
POP A
#endasm
} |
Осталось с подстановкой имен разобраться..
__________________
Осторожно , злой кот
Последний раз редактировалось dosikus; 18.03.2011 в 22:06.
|
|
|
|
18.03.2011, 22:00
|
|
Гражданин KAZUS.RU
Регистрация: 02.06.2003
Адрес: Челябинск
Сообщений: 545
Сказал спасибо: 10
Сказали Спасибо 341 раз(а) в 202 сообщении(ях)
|
Re: STM8(S/L), первые впечатления
Сообщение от dosikus
|
Не имеет . Не нужна она мне теперь ))
Проще дальше извращаться :
Код:
|
void send_sw_spi (uint8_t data)
{
#asm
PORTC: equ $500A
PUSH A
LD A,#8
1$: SLA (1,SP)
BCCM PORTC,#6
BSET PORTC,#5
BRES PORTC,#5
DEC A
JREQ 1$
POP A
#endasm
} |
Осталось с подстановкой имен разобраться..
|
Наверное, можно чуток код упростить
Код:
|
PUSH #8
1$: SLA A
BCCM PORTC,#6
BSET PORTC,#5
BRES PORTC,#5
DEC (1,SP)
JRNE 1$
POP A |
Или нет?
|
|
|
|
18.03.2011, 22:04
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: STM8(S/L), первые впечатления
Сообщение от Bill
|
Или нет?
|
Точно . И про переход в самую точку.
А вот что с дефайнами делать ???
Да асм , как кто то уже писал, напоминает Z80 . Аж нахлынуло...
__________________
Осторожно , злой кот
Последний раз редактировалось dosikus; 18.03.2011 в 22:10.
|
|
|
|
18.03.2011, 22:15
|
|
Гражданин KAZUS.RU
Регистрация: 02.06.2003
Адрес: Челябинск
Сообщений: 545
Сказал спасибо: 10
Сказали Спасибо 341 раз(а) в 202 сообщении(ях)
|
Re: STM8(S/L), первые впечатления
Сообщение от dosikus
|
Точно . И про переход в самую точку.
А вот что с дефайнами делать ???
Да асм , как кто то уже писал, напоминает Z80 . Аж нахлынуло...
|
Я вообще-то стараюсь писать отдельные модули на ассемблере. Вставки мешают компилятору оптимизировать код.
А что касается Z80, то я большого сходства не вижу. Архитектуры Z80 и STM8 сильно различаются.
Код:
|
CLK: EQU PORTC:5
......
bset CLK
bres CLK
.....
Или нет? |
Последний раз редактировалось Bill; 18.03.2011 в 22:18.
|
|
|
|
18.03.2011, 22:20
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: STM8(S/L), первые впечатления
Таки через стек...
А может имеет смысл передавать глобальную переменную-указатель на данные?
|
|
|
|
18.03.2011, 22:25
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: STM8(S/L), первые впечатления
Bill, Согласен не все .
Но вот этот кусок со стеком и аккумулятором ...
Про модули так же поддерживаю . Но именно здесь хотелось поменьше телодвижений. Да и это весь код модуля , что нужен был.
Да и временный он .Чисто для отладки .
__________________
Осторожно , злой кот
|
|
|
|
18.03.2011, 22:29
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: STM8(S/L), первые впечатления
Сообщение от omercury
|
Таки через стек...
|
Не а , передача не через стек .
Да и как передавать ?
Ложим в стек на асме , вызываем функцию . В итоге на вершине стека возврат .
Придется вытаскивать возврат потом параметры , потом сохранять возврат .
__________________
Осторожно , злой кот
|
|
|
|
18.03.2011, 22:34
|
|
Гражданин KAZUS.RU
Регистрация: 02.06.2003
Адрес: Челябинск
Сообщений: 545
Сказал спасибо: 10
Сказали Спасибо 341 раз(а) в 202 сообщении(ях)
|
Re: STM8(S/L), первые впечатления
Сообщение от omercury
|
Таки через стек...
А может имеет смысл передавать глобальную переменную-указатель на данные?
|
А зачем? Чем стек-то не нравится?
|
|
|
|
18.03.2011, 22:43
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: STM8(S/L), первые впечатления
Сообщение от dosikus
|
Да и как передавать ?
Ложим в стек на асме , вызываем функцию . В итоге на вершине стека возврат .
Придется вытаскивать возврат потом параметры , потом сохранять возврат .
|
Кто заставляет менять на вершине стека? Можно же менять SP-2.
Сообщение от Bill
|
А зачем? Чем стек-то не нравится?
|
Да стек сразу и предложил - никто же не слушает. Думал глупость сморозил - удалил сообщение.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 22:11.
|
|