|
Для одного канала-там всё понятно было, но мне понадобилось
допустим с двух( вообще, с 6, но пока остановимся на 2-х).Был простейший
способ решения-хранить номер канала в какой-либо переменной в data.Но почему-то
не сработало.Он как лупит с одного канала, так и лупит, на второй вообще и не
смотрит -(.Может, ADCH надо очищать?А может, я вообще не так делаю..
Вот пример программы:
.org 0
ljmp Start
.org 0053H
ljmp ADCRefresh ;переход по прерыванию АЦП
.....
ChanNumber-переменная для номера канала
.....
Start:
.....
setb EAD
setb EA
mov ChanNumber,#0
mov ADCON,#00001000B ;заводим АЦП на первый канал
sjmp $ ;далее программа что-то делает в основном цикле
ADCRefresh: mov A,ChanNumber
cjne A,#0,Chan1Refresh;переход на обсчет данных с другого канала
mov ChanNumber,#1
mov A,ADCH
далее программа что-то делает с результатом по каналу 0
mov ADCON,#00001000B
reti
Chan1Refresh:mov ChanNumber,#0 ;возврат к 0-му каналу
mov A,ADCH
далее программа что-то делает с результатом по каналу 1
mov ADCON,#00001001B перезарядка на 1-й канал
reti
Не работает это -(.Ну ведь должна же она по этому хоть когда-нибудь
перелезть на второй канал..а она не хочет.Помогите найти ошибку.Или
подскажите, как надо..
E-mail: info@telesys.ru