![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Участник клуба
Регистрация: 07.07.2009
Сообщений: 1,385
|
![]()
Господа, здраствуйте!
У меня проблема с контроллером и таймером: стек создается, порт конфигурируется, лампочка загорается, таймер запускается, потом, как таймер оттикал, лампочка гаснет и вновь запускается таймер. И потом по идее снова должна загореться лампочка, а у меня программа просто не выходит из таймера - он все тикает и тикает, оттикал до переполнения и вновь перезапустился... А лампочка не зажигается заново - я бъюсь как рыба об лед.... вроде все правильно.... Помогите блондинке, объясните, в чем ошибка и почему такая реакция, и как правильно... мне еще 2 света крутить((((( И все с циклами - горит, не горит((( Код:
"Все мы жаждем чудес. Чисто человеческое свойство." Carl Sagan
|
![]() |
![]() |
![]() |
#2 |
Непрофессионал
Участник клуба
Регистрация: 01.01.2008
Сообщений: 1,405
|
![]()
Это какие-то куски программы? Или почему такой бардак?
Что за дикий цикл? Код:
Процедура Timer настраивает таймер счётчик 0. Ну и зачем его три раза подряд настраивать, в промежутке между настройками переключая порт? И чем вообще всё закончилось, где хотя бы один возврат из процедуры? В итоге - ничего не понятно. Настроили таймер, а использовать не используете, почему, зачем, печальный смайлик ![]()
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------ Страничка с моими программками http://ulex-masm.ru |
![]() |
![]() |
![]() |
#3 |
Участник клуба
Регистрация: 07.07.2009
Сообщений: 1,385
|
![]()
Ну конечно, был выход из таймера - поэтому я и удивляюсь, почему при следующем вхождении он из него не выходит. Ведь все точно также прописано.
Мне надо чтобы у меня был цикл - 3 раза лампочка загорается, три раза гаснет - по очереди. Я не знаю, как по другому прописать, не перенастраивая порт. Мне еще надо тоже самое проделать с 2 другими цветами. Это не куски программы, она просто не дописана до конца, потому как эта часть не раюотает как надо. Я все равно продолжение оттестировать не смогу, пока с этим не разберусь. Ну не понимаю я ничего уже....
"Все мы жаждем чудес. Чисто человеческое свойство." Carl Sagan
|
![]() |
![]() |
![]() |
#4 | ||
Непрофессионал
Участник клуба
Регистрация: 01.01.2008
Сообщений: 1,405
|
![]() Цитата:
Цитата:
Значит теперь по существу. 1. Так как разрешены прерывания, то значит вектора должны быть заполнены ,в идеале все, а как минимум те, которые используются. У вас это RESET и OVF0. В вашей программе jmp на обработчик находится не там, где ему положено находиться, а точнее просто брошен где попало. Поэтому когда возникнет прерывание, контроллер пойдёт не на выполнение вашего обработчика, а чёрт знает куда. Для прерывания OVF0 - это 17-ый вектор, адрес $0020. Именно по этому адресу должен стоять jmp, либо заглушка reti. 2. Теперь про таймер. Я попытался наводящими вопросами намекнуть, что не надо его три раза подряд настраивать. Зачем? Настроили один раз по сбросу - и всё, пусть он себе молотит спокойно. А всю обработку портов, сигналов, битов выносите в обработчик прерывания. Соберём в кучу вышесказанное. Эта программка будет поидее моргать пином 0 порта B в соответствии с битовой последовательностью, расположенной в озу по адресу VAL_1DIOD. т.е. 10101010. Код:
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------ Страничка с моими программками http://ulex-masm.ru |
||
![]() |
![]() |
![]() |
#5 |
Участник клуба
Регистрация: 07.07.2009
Сообщений: 1,385
|
![]()
Спасибо большое, буду потихоньку разбираться... К сожалению нам Assembler преподают не очень хорошо... Не только блондинки, но и пацаны в нем ой как плавают.. Мне надо кровь из носу, чтобы получить зачет сдать этот чертов "парк-троник" и сигнализацию. Ну прямо "Планета Шелезяка - воды нет, полезных ископаемых нет, населена роботами...."
Нажимаю на весы))) Спасибо, что откликнулись)) Премного Вас благодарю!
"Все мы жаждем чудес. Чисто человеческое свойство." Carl Sagan
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Цикл Cardinal - почему так происходит? | Nester | Общие вопросы Delphi | 2 | 28.07.2010 15:04 |
Удаление информации из файлов .mb: почему не происходит? | Ruschel | БД в Delphi | 4 | 25.02.2010 09:22 |
Почему происходит сброс переменной password? | NSvirus | PHP | 2 | 10.11.2009 16:07 |
Form Region-почему так происходит | Nester | Общие вопросы Delphi | 3 | 14.09.2009 21:16 |
Почему так происходит? | Zeraim | Общие вопросы Delphi | 1 | 05.05.2008 14:10 |