Вверх ↑
Ответов: 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] [748]