Консультация № 187282
15.04.2013, 11:17
80.31 руб.
0 3 1
Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос:
Написал прогу с помощью AVR Studio 5
Выдает две ошибки.Не могу разобраться . Помогите пожалуйста

Приложение:
/*
* AVRAssembler2.asm
*ПРОГРАММА УПРАВЛЕНИЯ СТАНКОМ ГИБОЧНЫМ
* Created: 30.03.2013 21:02:09
* Author:Vac
*/
.include "tn2313def.inc"
.list
.def temp=r16
.def nol=r17
.def ugol=r18
.def rab=r19

rjmp INIT
INIT:
ldi temp, RAMEND
out SPL, temp
ldi temp, 0
out DDRB,temp
ldi nol, 0xDC
out DDRD, nol

ldi temp, 0xFF
out PORTD, temp
out PORTB, temp

ldi temp, 0x80
out ACSR, temp

Start:

clr nol ;Обнуляем регистр nol

clr ugol ;Обнуляем регистр ugol
sbic PinD,5 ;Проверяем состояние прижимной платформы
rjmp Start
sbic PinB,6 ;Проверяем состояние поворотной платформы
rjmp m1
rjmp m2

m1:

sbic PinD,1 ;Проверяем состояние кнопки включения возврата поворотной
;платформы в крайнее нижнее положение
rjmp m1
cbi PortD,3 ;Включаем пускатель возврата поворотной платформы
cbi PortD,4 ;Включаем реле блокировки пускателей подъема-опускания прижимной
;платформы
rjmp m7

m2:

ldi rab,PinB
cbi rab,7 ;Сбрасываем 7-ой и 6-ой биты регистра rab
cbi rab,6
cpse rab,nol ;Проверяем ненулевое значение угла поворота
rjmp m3
rjmp m2

m3:

sbic PinD,0
rjmp m3
cbi PortD,2 ;Включаем рабочий ход поворотной платформы
cbi PortD,4 ;Включаем реле блокировки пускателей подъема-опускания прижимной
;платформы
m4:

sbic PinB,7 ;Считываем число угловых сегментов поворота платформы при
;изгибании
rjmp m4
inc ugol
cpse rab,ugol ;Сравниваем угол повоота платформы с установленным значением (50)
rjmp m5
sbi PortD,2 ;Выключаем пускатель прямого хода поворототной платформы при
;совпадении угла поворота с установленным значением
rjmp m6
m5:
sbis PinB,7 ;Команда, определяющая переход от одного углового сегмента к
rjmp m5 ;другому
rjmp m4

m6:

sbic PinD,1 ;Проверяем включение кнопки возврата поворотной платформы
rjmp m6
cbi PortD,3 ;Включение пускателя возврата поворотной платформы

m7:

sbic PinB,6 ;Контроль возврата поворотной платформы в крайнее нижнее положение
rjmp m7
sbi PortD,3 ;Выключение пускателя возврата поворотной платформы
sbi PortD,4 ;Выключаем реле блокировки пускателей подъема-опускания
;прижимной платформы
rjmp Start

Обсуждение

давно
Старший Модератор
31795
6196
15.04.2013, 11:25
общий
Какие ошибки, в каких строчках?
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Посетитель
7438
7205
15.04.2013, 11:50
общий
Ошибки видны невооруженным глазом:
Код:
m2:	ldi rab,PinB 
cbi rab,7 ;Сбрасываем 7-ой и 6-ой биты регистра rab
cbi rab,6
С портами и регистрами так нельзя работать. Надо:
Код:
m2:	in rab,PinB 
cbr rab,(1<<7)|(1<<6) ;Сбрасываем 7-ой и 6-ой биты регистра rab
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
давно
Посетитель
7438
7205
15.04.2013, 12:13
общий
30.09.2015, 12:01
это ответ
Здравствуйте, Питулин Александр Михайлович!
Ошибки здесь:
Код:
m2:	ldi rab,PinB 
cbi rab,7 ;Сбрасываем 7-ой и 6-ой биты регистра rab
cbi rab,6
С портами и регистрами так нельзя работать. Надо:
Код:
m2:	in rab,PinB 
cbr rab,(1<<7)|(1<<6) ;Сбрасываем 7-ой и 6-ой биты регистра rab
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
Форма ответа