роботы робототехника микроконтроллеры


 Страниц (7): « 1 2 [3] 4 5 6 7 »   

> Описание: Нужна помощь по программированию
killgur Post Id



Гуру


Сообщений всего: 1189
Дата рег-ции: Февр. 2010  



Насчет помощи как из одного импульса сделать 4 нет проблем .

Не подозревал что умею писать на ассемблере Улыбка

CODE:

; ============================================
; I N T E R R U P T S E R V I C E S
; ============================================
;
; [Add all interrupt service routines here]

EXT_INT0:
cli
ldi flag,00000001b ;поднимаем флаг
spi
reti
;
; ============================================
; M A I N P R O G R A M I N I T
; ============================================
;
Main:
; Init stack
ldi rmp, HIGH(RAMEND) ; Init MSB stack
out SPH,rmp
ldi rmp, LOW(RAMEND) ; Init LSB stack
out SPL,rmp
; Init Port c
ldi rmp,00001111b ; Direction Port c
out DDRc,rmp

ldi rmp,11110000b ;низкий на выходы
out portc,rmp

ldi rmp,0b ; порт д будет входом D
out ddrd,rmp

ldi rmp,00000100b ; просто для очистки совести
out portd,rmp

ldi pos,11110001b ; номер светодиода
ldi flag,00000000b ; обнуляем флаг прерыв


ldi rmp, 1<<ISC01 ;по спаду фронта
out MCUCR,rmp

ldi rmp, 1<<INT0 ;разрешаем INTO
out GIMSK,rmp
sei ;разрешаем прерывания

;
; ============================================
; P R O G R A M L O O P
; ============================================
;
Loop:
cpi flag, 1 ; если флаг не установлен
brne loop ; ничего не делаем

out portc,pos ; зажигаем
nop ;ничего умнее не придумал
nop ;снова
ldi rmp,11110000b
out portc,rmp ;гасим

sbrs pos,0 ; дальше просто перебор диодов
rjmp m1
ldi pos,11110010b
rjmp ex_loop

m1:
sbrs pos,1
rjmp m2
ldi pos,11110100b
rjmp ex_loop

m2:
sbrs pos,2
rjmp m3
ldi pos,11111000b
rjmp ex_loop

m3:
ldi pos,11110001b

ex_loop:
ldi flag,0h ;сбрасываем флаг

rjmp loop ; go back to loop
;
; End of source code
;


полный код прилагается
Скачать файл: flash_rom_U1_1.rar
Скачан раз: 298

(Отредактировано автором: 03 Июня, 2011 - 16:16:57)

 
 Top
killgur Post Id



Гуру


Сообщений всего: 1189
Дата рег-ции: Февр. 2010  



как оно имитируется
Прикреплено изображение
Egnition.png

 
 Top
sibiryak Post Id



Главнокомандующий


Сообщений всего: 248
Дата рег-ции: Февр. 2011  



killgur пишет:
killgur
Большое спасибо за проделаную работу, но я ничего не понимею на ассемблере. Можно что нибудь хотя бы примерное на си ? А там я уж разберусь Смущение
 
 Top
killgur Post Id



Гуру


Сообщений всего: 1189
Дата рег-ции: Февр. 2010  



Ассемблер, на таком пипирочном уровне сложности программы - очень простой язык, 20 команд Улыбка 20 регистров.

я эту программу вчера за вечер написал просто пользуясь генератором заголовков
и
http://www.gaw.ru/html.cgi/txt/d...vr/asm/start.htm

Все равно что на программируемом калькуляторе ... просто удивительно, писал текст в суперредакторе Notepad.exe

Взял у киповцев наших программу в которой можно худо бедно проверить работу хоть она и под PIC больше заточена.

а С образных диалектов как минимум 4 существует от каждого разработчика IDE...
В добавок на С++ надо че то качать потом разбираться почему скачанное не работает или работает криво из за жестко искромсанного С++. потом качать какие то пираtки симуляторов которые разных версий не дружат даже друг с другом ... нет уж.

Правда НЕХ че та большой целых 386 байт получился....

(Отредактировано автором: 03 Июня, 2011 - 23:25:49)

 
 Top
nest Администратор Post Id



Администратор


Сообщений всего: 4866
Дата рег-ции: Сент. 2009  



sibiryak пишет:
Можно что нибудь хотя бы примерное на си ?


ПОТГОТОВКА:
- создали байтовую переменную temp
- загрузили в temp маску 0b100100
- настроили прерывание

БЕЗКОНЕЧНЫЙ_ЦЫКЛ:
while (1)
{
#nop;
}


ПРЕРЫВАНИЕ:
- умножили temp на 2
- вывели temp в PORTC
#nop;
- сбросили PORTC ; killgur подсказал Улыбка
 
 Top
killgur Post Id



Гуру


Сообщений всего: 1189
Дата рег-ции: Февр. 2010  



После вывода temp в порт c надо сбросить порт, а то остается висеть сигнал на выходе до следующего прерывания, а задача была только импульс создать на выходе по прерыванию.
А задержки в обработчике прерывания не по пацански Улыбка потому так и извратился.

(Отредактировано автором: 03 Июня, 2011 - 23:56:52)

 
 Top
sibiryak Post Id



Главнокомандующий


Сообщений всего: 248
Дата рег-ции: Февр. 2011  



Вот спасибо друзья. Теперь буду разбераться. А такой ассемблерный код можно так же в винавр компилировать через тот же мак файл ?
 
 Top
killgur Post Id



Гуру


Сообщений всего: 1189
Дата рег-ции: Февр. 2010  



sibiryak пишет:
Вот спасибо друзья. Теперь буду разбераться. А такой ассемблерный код можно так же в винавр компилировать через тот же мак файл ?


к сожалению не в курсе даже что такое winavr
 
 Top
nest Администратор Post Id



Администратор


Сообщений всего: 4866
Дата рег-ции: Сент. 2009  



sibiryak пишет:
ассемблерный код можно так же в винавр компилировать через тот же мак файл ?
можно скачать AVRStudio с сайта атмеля. Без ограничений во все стороны.
Только качайте версию 4.хх.
 
 Top
sibiryak Post Id



Главнокомандующий


Сообщений всего: 248
Дата рег-ции: Февр. 2011  



У меня виста хоум премиум помоему не поддерживает эту прогу так же как и многие другие. Переустановить боюсь дрова не подойдут на бук тошиба.
(Добавление)
Установилось и нормально работает винавр и симулятор протеус.
 
 Top
nest Администратор Post Id



Администратор


Сообщений всего: 4866
Дата рег-ции: Сент. 2009  



там пятая версия сейчас вышла ... вдруг на вашей Хоум заработает Улыбка
 
 Top
killgur Post Id



Гуру


Сообщений всего: 1189
Дата рег-ции: Февр. 2010  



AVRStudio ставится дажe на HOME BASIC.
 
 Top
sibiryak Post Id



Главнокомандующий


Сообщений всего: 248
Дата рег-ции: Февр. 2011  



А не подскажете какую лучше скачать ? А то у меня инет 2.30 за метр. Обидно будет если не то скачаю.

AVR Studio 5 installer (includes VSS and .NET)
(602 MB, revision 5.0, updated 5/11)
This installer contains AVR Studio 5, Visual Studio Shell (Isolated mode) 2010 and .NET 4.0.

Select this installer if you need all three or are unsure of what installer to use


AVR Studio 5 installer
(387 MB, revision 5.0, updated 5/11)
This installer contains AVR Studio 5 only and requires that you have already installed Visual Studio Shell (Isolated mode) 2010 and .NET 4.0.

Select this installer if you have installed AVR Studio 5 beta already and only need to upgrade


AVR Studio 5 beta 2 installer (includes VSS and .NET)
(554 MB, revision 5.0, updated 5/11)
This installer contains AVR Studio 5 beta 2, Visual Studio Shell (Isolated mode) 2010 and .NET 4.0.

Select this installer if you need all three or are unsure of what installer to use


AVR Studio 5 beta 2 installer
(339 MB, revision 5.0, updated 5/11)
This installer contains AVR Studio 5 beta 2 only and requires that you have already installed Visual Studio Shell (Isolated mode) 2010 and .NET 4.0.

Select this installer if you have installed AVR Studio 5 beta 1 already and only need to upgrade.
 
 Top
nest Администратор Post Id



Администратор


Сообщений всего: 4866
Дата рег-ции: Сент. 2009  



sibiryak пишет:
А не подскажете какую лучше скачать ?

четвёртую: AVR Studio 4.18 (build 684) http://www.atmel.com/dyn/product...subfamily_id=760
An Integrated Development Environment (IDE) for developing Atmel 8-bit AVR applications in Windows NT, Windows 2000, Windows XP, Windows Vista, and Windows 7 environments.

На пятую народ очень матерится.
 
 Top
sibiryak Post Id



Главнокомандующий


Сообщений всего: 248
Дата рег-ции: Февр. 2011  



Спасибо, скачал её и установил. Теперь буду изучать прогу и ассемблер.
Может кто знает где можно почитать про эту прогу как ей пользоваться.. Смущение
 
 Top
Страниц (7): « 1 2 [3] 4 5 6 7 »
« Программирование микроконтроллеров »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 





Powered by Exclusive Bulletin Board
ExBB FM 1.0 RC1 Smiles by Fool from Foolstown
  Яндекс.Метрика   Рейтинг@Mail.ru