Например TDA7294

Форум РадиоКот • Просмотр темы - Проблема с COUNT
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Чт мар 19, 2026 13:58:51

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Проблема с COUNT
СообщениеДобавлено: Чт окт 25, 2012 23:33:05 
Держит паяльник хвостом
Аватар пользователя

Карма: 15
Рейтинг сообщений: 70
Зарегистрирован: Ср мар 28, 2012 21:45:24
Сообщений: 906
Откуда: ВО
Рейтинг сообщения: 0
Код:
      ldi      count,8
      sei
;************************************************
;*    ;;/ Send command SEARCH and two READ ;;*    *
;************************************************
Wait_Bit_SEND:
      sbrs   Flags,fl_Bit_SEND
      rjmp   Wait_Bit_SEND
      cbr      Flags,1<<fl_Bit_SEND
      dec      count
      breq   SEND_twoREAD_BIT
      outi   UCSRB,1<<RXCIE|1<<TXCIE|1<<RXEN|1<<TXEN
      rjmp   Wait_Bit_SEND
SEND_twoREAD_BIT:
      outi   UCSRA,1<<TXC
      subi   count,-2
SEND_READ_BIT:
      outi   UDR,READDS18
WAIT_READ:
      in      temp,UCSRA
      sbrs   temp,RXC
      rjmp   WAIT_READ
      in      temp,UDR
      dec      count
      breq   SEARCH_VALUE_BIT
      mov      temp1,temp
      rjmp   SEND_READ_BIT
;************************************************
;*             ;;/ FIND NUMBER ;;*          *
;************************************************
SEARCH_VALUE_BIT:   
      cpse   temp1,temp
      rjmp   Not_Conflict
      cpse   TEMP1,ZERO
      rjmp   ERROR_SENSOR
      rjmp   Found_Conflict
Not_Conflict:
      cpse   temp1,zero
      sbr      Shift_REG,1<<MSB_REG
      lsr      Shift_REG
      out      UDR,temp1
      inc      count
      sbrc   count,Value_8
      st      -X,Shift_REG
      inc      Bit_Number
      cpi      Bit_Number,64
      brne   SEND_twoREAD_BIT

Что бы не использовать два регистра, использую count сразу для двух циклов. Но вот после этого
Код:
sbrc   count,Value_8
      st      -X,Shift_REG

мне бы его обнулить. Никак не придумаю , как. Help me , please


Вернуться наверх
 
 Заголовок сообщения: Re: Проблема с COUNT
СообщениеДобавлено: Пт окт 26, 2012 09:07:35 
Друг Кота
Аватар пользователя

Карма: 67
Рейтинг сообщений: 1071
Зарегистрирован: Чт сен 18, 2008 12:27:21
Сообщений: 20085
Откуда: Столица Мира Санкт-Петербург
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
CLR не катит?

_________________
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]


Вернуться наверх
 
 Заголовок сообщения: Re: Проблема с COUNT
СообщениеДобавлено: Пт окт 26, 2012 09:29:42 
Держит паяльник хвостом
Аватар пользователя

Карма: 15
Рейтинг сообщений: 70
Зарегистрирован: Ср мар 28, 2012 21:45:24
Сообщений: 906
Откуда: ВО
Рейтинг сообщения: 0
Катит :))) , так же eor , andi с нулем , subi из count 8, но вот куда бы их впихнуть. Так не хочется разновидности br** использовать


Вернуться наверх
 
 Заголовок сообщения: Re: Проблема с COUNT
СообщениеДобавлено: Пт окт 26, 2012 12:16:37 
Мудрый кот
Аватар пользователя

Карма: 24
Рейтинг сообщений: 286
Зарегистрирован: Чт июн 10, 2010 08:55:35
Сообщений: 1810
Откуда: Сибирские Афины
Рейтинг сообщения: 0
Код:
sbrc   count,Value_8
      st      -X,Shift_REG
Т.е. тебе места не хватает на месте "st -X,Shift_REG"? Сделай rjmp куда-нибудь, скажем перед Not_Conflict , сделай что надо там и rjmp назад. :)

:idea: Или дважды sbrc count,Value_8 :))

_________________
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
 Заголовок сообщения: Re: Проблема с COUNT
СообщениеДобавлено: Пт окт 26, 2012 13:31:05 
Держит паяльник хвостом
Аватар пользователя

Карма: 15
Рейтинг сообщений: 70
Зарегистрирован: Ср мар 28, 2012 21:45:24
Сообщений: 906
Откуда: ВО
Рейтинг сообщения: 0
Мне не хватает "ширины шага" команды SBRC . Надо записать в SRAM и обнулить count . Shift_REG - может втолкнуть в себя только 8-бит , а надо же 64. Ставить 8 регистров - какое-то гадостное душевное чувство не позволяет. А два rjmp для одного действия - перебор. Похоже придётся всё таки к BR** " обращаться".


Вернуться наверх
 
 Заголовок сообщения: Re: Проблема с COUNT
СообщениеДобавлено: Пт окт 26, 2012 13:47:17 
Опытный кот
Аватар пользователя

Карма: 7
Рейтинг сообщений: 52
Зарегистрирован: Чт дек 31, 2009 19:27:45
Сообщений: 842
Откуда: Бровари, Україна
Рейтинг сообщения: 0
Kavka писал(а):
:idea: Или дважды sbrc count,Value_8 :))
+1
Я не стесняюсь ставить две skip-команды с одинаковым условием подряд (не по периферии, конечно :-) )
Код:
      sbrc   count,Value_8
      st      -X,Shift_REG
      sbrc   count,Value_8
      clr    count
просто чтобы метку не ставить, глаз об неё не тормозить потом (gnu as имеет локальные метки, так что выдумывать не надо, но чтобы не рябило).
По сравнению с
Код:
      sbrc   reg, bit
      rjmp 1f
      command1
      command2
1:
вариант
Код:
      sbrc   reg, bit
      command1
      sbrc   reg, bit
      command2
по размеру кода не отличается, по времени выполнения на один такт больше в случае невыполнения условия и одинаково в случае выполнения.

_________________
Лень в виде мании величия: «ты гений, зачем стараться?». В виде комплекса: «всё равно не выйдет, зачем упираться?». Как логика: «если достаточно, зачем знать и уметь больше?». Цель одна: остановить. Не любит тепло работающих мышц и шум работающего мозга.


Вернуться наверх
 
 Заголовок сообщения: Re: Проблема с COUNT
СообщениеДобавлено: Пт окт 26, 2012 14:20:05 
Держит паяльник хвостом
Аватар пользователя

Карма: 15
Рейтинг сообщений: 70
Зарегистрирован: Ср мар 28, 2012 21:45:24
Сообщений: 906
Откуда: ВО
Рейтинг сообщения: 0
Kavka , avreal СПАСИБО!!! Пойду этим путём.

Кстати avreal из Ваших P.S пора уже сбоник издавать :)))


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Часовой пояс: UTC + 3 часа


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y