реклама на сайте
подробности

 
 
17 страниц V  < 1 2 3 4 > »   
Reply to this topicStart new topic
> tiny2313 & mega8, посоветуйте плз
Terapefft
сообщение Nov 13 2006, 06:07
Сообщение #16


Частый гость
**

Группа: Свой
Сообщений: 167
Регистрация: 14-06-06
Из: Рязань
Пользователь №: 18 052



Цитата(Dog Pawlowa @ Nov 10 2006, 22:19) *
Цитата(Terapefft @ Nov 10 2006, 17:27) *

Я вот тут сделал подпрограмму для второго таймера с нужной мне точностью

а вот как сделать так чтобы время включения насоса менять можно было бы?
вот на всякий случай прога для ПИ

Увы, пишу только на С, и до уровня кодирования регистров и таймеров дохожу только после продумывания структуры прибора. Чего и Вам желаю :-)
Вы выбрали способ передачи информации о времени работы насоса?

Насколько я себе представляю мне нужно просто выставить флаг включения насоса, выдержать нужное мне время, с помощью таймера счетчика. И затем выставить флаг отключения насоса. Или я что то не так понимаю?
Go to the top of the page
 
+Quote Post
Семён
сообщение Nov 13 2006, 07:51
Сообщение #17


Частый гость
**

Группа: Свой
Сообщений: 196
Регистрация: 19-07-06
Из: Москва
Пользователь №: 18 922



Цитата(Terapefft @ Nov 13 2006, 09:07) *
Насколько я себе представляю мне нужно просто выставить флаг включения насоса, выдержать нужное мне время, с помощью таймера счетчика. И затем выставить флаг отключения насоса. Или я что то не так понимаю?

Обсолютно правильно

Цитата(Kovrov @ Nov 12 2006, 17:26) *
Offtopic:
последнее время очень модно стало писать на асм именно на рабочем месте, в надежде на плохую читаемость или вовсе не читаемость другим человеком , если к примеру писавшего увольняют или сам увольняется.
Наверное какая никакая отрада для души.

ИМХО: Не забывайте, что иногда еще фигурирует стоимость окончательного устройства. Для не больших проектов ассемблер, особенно при работе с битами, более интересен.


--------------------
Тяжелое детство - 8-битные игрушки на 8-дюемовых дискетах
Go to the top of the page
 
+Quote Post
Terapefft
сообщение Nov 13 2006, 09:49
Сообщение #18


Частый гость
**

Группа: Свой
Сообщений: 167
Регистрация: 14-06-06
Из: Рязань
Пользователь №: 18 052



а вот как сделать так чтобы значение введеное с платы индикации сохранялось в счетчике на плате управления?
Go to the top of the page
 
+Quote Post
Wild007
сообщение Nov 13 2006, 09:59
Сообщение #19


Местный
***

Группа: Свой
Сообщений: 226
Регистрация: 25-03-05
Из: Беларусь
Пользователь №: 3 672



Цитата(Terapefft @ Nov 13 2006, 11:49) *
а вот как сделать так чтобы значение введеное с платы индикации сохранялось в счетчике на плате управления?


Через SPI smile.gif .


--------------------
Ничто так не ограничивает полет мысли программиста, как компилятор
Go to the top of the page
 
+Quote Post
Семён
сообщение Nov 13 2006, 10:07
Сообщение #20


Частый гость
**

Группа: Свой
Сообщений: 196
Регистрация: 19-07-06
Из: Москва
Пользователь №: 18 922



Цитата(Terapefft @ Nov 13 2006, 12:49) *
а вот как сделать так чтобы значение введеное с платы индикации сохранялось в счетчике на плате управления?

ИМХО: Конкретную реализацию за Вас вряд ли кто-то будет делать. Поэтому изучите, как сейчас у Вас реализована связь и добавти передачу своего значения.


--------------------
Тяжелое детство - 8-битные игрушки на 8-дюемовых дискетах
Go to the top of the page
 
+Quote Post
Terapefft
сообщение Nov 15 2006, 12:24
Сообщение #21


Частый гость
**

Группа: Свой
Сообщений: 167
Регистрация: 14-06-06
Из: Рязань
Пользователь №: 18 052



Я вроде сделал в меню параметр который будет контролировать время включения насоса, все нормально меняется. Для отсчета времени выбрал счетчик timer2, так как он не использовался, но когда я в начале проги поставил переход на метку timer2 и сконфигурировал таймер, у меня почему при включении питания теперь индикатор вобще не светится
Go to the top of the page
 
+Quote Post
Wild007
сообщение Nov 15 2006, 12:30
Сообщение #22


Местный
***

Группа: Свой
Сообщений: 226
Регистрация: 25-03-05
Из: Беларусь
Пользователь №: 3 672



Цитата(Terapefft @ Nov 15 2006, 14:24) *
Я вроде сделал в меню параметр который будет контролировать время включения насоса, все нормально меняется. Для отсчета времени выбрал счетчик timer2, так как он не использовался, но когда я в начале проги поставил переход на метку timer2 и сконфигурировал таймер, у меня почему при включении питания теперь индикатор вобще не светится

Без текста проги ответ -- это стрельба по воробьям smile.gif


--------------------
Ничто так не ограничивает полет мысли программиста, как компилятор
Go to the top of the page
 
+Quote Post
Terapefft
сообщение Nov 15 2006, 12:53
Сообщение #23


Частый гость
**

Группа: Свой
Сообщений: 167
Регистрация: 14-06-06
Из: Рязань
Пользователь №: 18 052



вот исходник smile.gif который я уже пытался переделать

вот исходник smile.gif который я уже пытался переделать
Прикрепленные файлы
Прикрепленный файл  avtomat.txt ( 71.14 килобайт ) Кол-во скачиваний: 61
 
Go to the top of the page
 
+Quote Post
Wild007
сообщение Nov 15 2006, 13:33
Сообщение #24


Местный
***

Группа: Свой
Сообщений: 226
Регистрация: 25-03-05
Из: Беларусь
Пользователь №: 3 672



Стандартная ошибка:
timer2:

ldi rin,0b00000111 ; CK/1024
out tccr2,rin ;
ldi rin,$3c ; $3c=60
out tcnt2,rin ; Ïåðèîä (255-60)*1024/2000000=0.09984c

ldi rin,0b01000000 ; Ïîäêëþ÷àåì òîëüêî òàéìåð Timer2
out timsk,rin ; overflow timer2


ldi rin4,TNASOS ;здесь создан бесконечный цикл smile.gif
dec rin4
cpi rin4,0 ;
brne timer2 ;при возврате из этой точки rin4 ВСЕГДА равен TNASOS
reti
Ищи точку для

ldi rin4,TNASOS
успехов!! smile.gif


--------------------
Ничто так не ограничивает полет мысли программиста, как компилятор
Go to the top of the page
 
+Quote Post
Terapefft
сообщение Nov 15 2006, 13:53
Сообщение #25


Частый гость
**

Группа: Свой
Сообщений: 167
Регистрация: 14-06-06
Из: Рязань
Пользователь №: 18 052



просто это мой первый болеменее серъезный проект smile.gif а если вот так сделать ? :
ldi rin4,TNASOS ;

timer2:

ldi rin,0b00000111 ; CK/1024
out tccr2,rin ;
ldi rin,$3c ; $3c=60
out tcnt2,rin ; Ïåðèîä (255-60)*1024/2000000=0.09984c

ldi rin,0b01000000 ; Ïîäêëþ÷àåì òîëüêî òàéìåð Timer2
out timsk,rin ; overflow timer2


dec rin4
cpi rin4,0 ;
brne timer2 ;
reti
Go to the top of the page
 
+Quote Post
Wild007
сообщение Nov 15 2006, 14:15
Сообщение #26


Местный
***

Группа: Свой
Сообщений: 226
Регистрация: 25-03-05
Из: Беларусь
Пользователь №: 3 672



Цитата(Terapefft @ Nov 15 2006, 15:53) *
просто это мой первый болеменее серъезный проект smile.gif а если вот так сделать ? :
ldi rin4,TNASOS ;

timer2:

ldi rin,0b00000111 ; CK/1024
out tccr2,rin ;
ldi rin,$3c ; $3c=60
out tcnt2,rin ; Ïåðèîä (255-60)*1024/2000000=0.09984c

ldi rin,0b01000000 ; Ïîäêëþ÷àåì òîëüêî òàéìåð Timer2
out timsk,rin ; overflow timer2


dec rin4
cpi rin4,0 ;
brne timer2 ;
reti

Работать будет, НО некоректно в п\п обработки прерываний долго заниматься какими нибудь вычислениями, тем более устраивать там задержки. П\п должна выставить(изменить) какой-то флаг и вернуться в MAIN_LOOP и уже там обрабатывать информацию о произошедшем прерывании. Во время обработки прерывания все (CLI) прерывания запрещаются при входе в п\п прерывания и разрешаются после команды RETI. Поэтому код обработки должен быть как можно короче, для правильной и своевременной обработки других прерываний. smile.gif smile.gif


--------------------
Ничто так не ограничивает полет мысли программиста, как компилятор
Go to the top of the page
 
+Quote Post
Wild007
сообщение Nov 15 2006, 14:28
Сообщение #27


Местный
***

Группа: Свой
Сообщений: 226
Регистрация: 25-03-05
Из: Беларусь
Пользователь №: 3 672



И в догонку:
Студия имеет хорошие возможности для отладки. Создавать отдельные окна, в них писать куски програмы, отлаживать, и потом вставлять в основной текст прогрвммы. При отладке сразу большой программы всегда возникает много вопросов и найти ошибки не так то просто.


--------------------
Ничто так не ограничивает полет мысли программиста, как компилятор
Go to the top of the page
 
+Quote Post
Terapefft
сообщение Nov 16 2006, 08:04
Сообщение #28


Частый гость
**

Группа: Свой
Сообщений: 167
Регистрация: 14-06-06
Из: Рязань
Пользователь №: 18 052



я вот вчера вечером еще раз переделал прогу, попробовал просто подключить таймер2, вроде все нормально компилится, но когда прошиваю контроллер и ставлю на плату, после подачи питания даже индикатор перестал светится, может опять чего нить не так сделал? Причем до того как я ввел таймер2 все нормально работало....
Прикрепленные файлы
Прикрепленный файл  avtomat.txt ( 70.15 килобайт ) Кол-во скачиваний: 58
 
Go to the top of the page
 
+Quote Post
Wild007
сообщение Nov 16 2006, 09:25
Сообщение #29


Местный
***

Группа: Свой
Сообщений: 226
Регистрация: 25-03-05
Из: Беларусь
Пользователь №: 3 672



Ну попорядку:
.def d =r0 ;R0 не желателно использовать, т.к. он используются командой LPM
timer2:
cli ;Ты видимо не понял: Вход в пп обработки УЖЕ останавливает обработку других прерываний.
ldi rin,$3c ; $3c=60
out tcnt2,rin ;
ldi rin,TNASOS ;
prov:

dec rin ;
cpi rin,0 ;
brne prov ;Этот цикл лучше вынести в главный цикл (MAIN_LOOP)

reti ; А команда RETI сама разрешает прерывания.
sei : В данном случае SEI должно стоять перед RETI, хотя в их использовании (CLI, SEI) нет необходимости smile.gif

При отладке обрати внимание на регистр TIFR, там появляются нежелательные флаги. И как говорится: Учите матчасть. За это здорово Бьют smile.gif smile.gif smile.gif


--------------------
Ничто так не ограничивает полет мысли программиста, как компилятор
Go to the top of the page
 
+Quote Post
Terapefft
сообщение Nov 16 2006, 13:12
Сообщение #30


Частый гость
**

Группа: Свой
Сообщений: 167
Регистрация: 14-06-06
Из: Рязань
Пользователь №: 18 052



переделал все, прошил контролер, поставил на плату а толку никакого sad.gif все равно не светится. а когда убираю второй таймер, то все нормально....из за чего это может происходить???
Go to the top of the page
 
+Quote Post

17 страниц V  < 1 2 3 4 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 14:27
Рейтинг@Mail.ru


Страница сгенерированна за 0.01497 секунд с 7
ELECTRONIX ©2004-2016