|
|
  |
tiny2313 & mega8, посоветуйте плз |
|
|
|
Nov 13 2006, 06:07
|

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

|
Цитата(Dog Pawlowa @ Nov 10 2006, 22:19)  Цитата(Terapefft @ Nov 10 2006, 17:27)  Я вот тут сделал подпрограмму для второго таймера с нужной мне точностью
а вот как сделать так чтобы время включения насоса менять можно было бы? вот на всякий случай прога для ПИ
Увы, пишу только на С, и до уровня кодирования регистров и таймеров дохожу только после продумывания структуры прибора. Чего и Вам желаю :-) Вы выбрали способ передачи информации о времени работы насоса? Насколько я себе представляю мне нужно просто выставить флаг включения насоса, выдержать нужное мне время, с помощью таймера счетчика. И затем выставить флаг отключения насоса. Или я что то не так понимаю?
|
|
|
|
|
Nov 13 2006, 07:51
|
Частый гость
 
Группа: Свой
Сообщений: 196
Регистрация: 19-07-06
Из: Москва
Пользователь №: 18 922

|
Цитата(Terapefft @ Nov 13 2006, 09:07)  Насколько я себе представляю мне нужно просто выставить флаг включения насоса, выдержать нужное мне время, с помощью таймера счетчика. И затем выставить флаг отключения насоса. Или я что то не так понимаю? Обсолютно правильно Цитата(Kovrov @ Nov 12 2006, 17:26)  Offtopic: последнее время очень модно стало писать на асм именно на рабочем месте, в надежде на плохую читаемость или вовсе не читаемость другим человеком , если к примеру писавшего увольняют или сам увольняется. Наверное какая никакая отрада для души. ИМХО: Не забывайте, что иногда еще фигурирует стоимость окончательного устройства. Для не больших проектов ассемблер, особенно при работе с битами, более интересен.
--------------------
Тяжелое детство - 8-битные игрушки на 8-дюемовых дискетах
|
|
|
|
|
Nov 13 2006, 09:59
|

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

|
Цитата(Terapefft @ Nov 13 2006, 11:49)  а вот как сделать так чтобы значение введеное с платы индикации сохранялось в счетчике на плате управления? Через SPI  .
--------------------
Ничто так не ограничивает полет мысли программиста, как компилятор
|
|
|
|
|
Nov 13 2006, 10:07
|
Частый гость
 
Группа: Свой
Сообщений: 196
Регистрация: 19-07-06
Из: Москва
Пользователь №: 18 922

|
Цитата(Terapefft @ Nov 13 2006, 12:49)  а вот как сделать так чтобы значение введеное с платы индикации сохранялось в счетчике на плате управления? ИМХО: Конкретную реализацию за Вас вряд ли кто-то будет делать. Поэтому изучите, как сейчас у Вас реализована связь и добавти передачу своего значения.
--------------------
Тяжелое детство - 8-битные игрушки на 8-дюемовых дискетах
|
|
|
|
|
Nov 15 2006, 12:53
|

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

|
вот исходник  который я уже пытался переделать вот исходник  который я уже пытался переделать
|
|
|
|
|
Nov 15 2006, 13:33
|

Местный
  
Группа: Свой
Сообщений: 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 ;здесь создан бесконечный цикл dec rin4 cpi rin4,0 ; brne timer2 ;при возврате из этой точки rin4 ВСЕГДА равен TNASOS reti Ищи точку для ldi rin4,TNASOS успехов!!
--------------------
Ничто так не ограничивает полет мысли программиста, как компилятор
|
|
|
|
|
Nov 15 2006, 13:53
|

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

|
просто это мой первый болеменее серъезный проект  а если вот так сделать ? : 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
|
|
|
|
|
Nov 15 2006, 14:15
|

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

|
Цитата(Terapefft @ Nov 15 2006, 15:53)  просто это мой первый болеменее серъезный проект  а если вот так сделать ? : 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. Поэтому код обработки должен быть как можно короче, для правильной и своевременной обработки других прерываний.
--------------------
Ничто так не ограничивает полет мысли программиста, как компилятор
|
|
|
|
|
Nov 16 2006, 09:25
|

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

|
Ну попорядку: .def d =r0 ; R0 не желателно использовать, т.к. он используются командой LPMtimer2: 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) нет необходимости При отладке обрати внимание на регистр TIFR, там появляются нежелательные флаги. И как говорится: Учите матчасть. За это здорово Бьют
--------------------
Ничто так не ограничивает полет мысли программиста, как компилятор
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|