Вверх ↑
Ответов: 29
Рейтинг: 0
#1: 2011-07-26 21:06:35 ЛС | профиль | цитата
Assasin, ладно понимаю. В любом случае благодарен за отклик.
Понимаешь, в настоящий момент у меня есть всего 7 глобальных переменных, и их достаточно, чтобы сгенерировать выходную программу по всем правилам языка ассемблер для AVR.
Не во флуд, вспоминаем аналогию - семь цветов, семь нот..
Если их станет 70 - никакой анальгин мне уже не поможет от головной боли, вспоминать, какая переменная за что отвечает.

Хотя, я немного слукавил. Если удасться решить выше озвученную задачу..
Ниже, сгенерированный код ассемблерной программы. Он не подогнан, просто там тестовые компоненты не несут в себе данных, которые нужно будет нести в потоке.

p.s. как поменять данные в массиве. Netspirit, может Вы знаете?!


#hws
;program MainTest

;.device AT90S2313
.include "C:\VMLAB\include\2313def.inc"
.def temp = R16

rjmp RESET ; Обработка сброса
rjmp INT0
nop
nop
nop
nop
nop
nop
nop
nop
nop


.cseg
reset: ; начало основной программы
ldi temp,low(RAMEND)
out spl,temp
clr R16
sei

Loop: ; пустой цикл. нужен для имитации работы основной программы в ожидании
nop ; каких-то событий, например внешних прерываний или событий от таймеров,
nop ; ну и т.д.
nop
rjmp Loop

; ниже, находится блок - ('BLK_INTERRUPT') и все последующие в этой цепочке
; компоненты при получении управляющего сигнала dt[0] = 'break' обязаны будут
; писать свой код именно сюда. Элемент с индексом [0] до последнего компонента
; в этой цепочке не должен изменяться, а вот элемент с индексом [1] попав например
; в линейный счетчик, на выходе в поток должен поменятся и нести в себе
; уже значение счетчика.

INT0: ; Обработчик прерывания INT0 - ОТСЮДА НАЧИНАЕТСЯ ПАРОВОЗИК!!!
xxx ; здесь выводиться тестовая строка println('xxx')
xxx ; строка со второго тестового компонента
reti ; команда возврата из прерывания

карма: 0

0
файлы: 1code_24734.txt [1.7KB] [581]