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

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


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

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



Доброго времени суток господа!!
Подскажите пожалуйста начинающему....Передо мной стоит задача следующего характера: в оборудовании имеется плата индикации (на ней стоит tiny2313) и плата управления (на ней mega8). Недавно я переделывал прогу для тини2313 (раньше там использовался s1200). Сейчас стоит задача переделать немного прогу на мегу8....
Сейчас она управляет клапаном, т.е. при достижении клапаном определеного датчика (на 0,5 литра или на 1 л), он возвращается обратно, дозируя тем самым необходимое количество жидкости. Но теперь необходимо просто поставить насос (сигнал с платы идет на частотник, а насос подключен к нему), который будет дозировать следующим образом: включатся на некоторый промежуток времени (который можно будет изменять) и выключатся. Алгоритм работы я представляю: нужен регистр в который будет сохранятся введеное значение с платы индикации, потом это значение должно попасть в счетчик, и в самой програме после выставления флага на включение насоса перейти на ПП обработки прерывания для выдержания насоса во включеном состоянии нужное количество времени. Посоветуйте пожалуйста как это все лучше сделать... Вот исходник проги для платы управления
Прикрепленные файлы
Прикрепленный файл  avtomat.txt ( 69.4 килобайт ) Кол-во скачиваний: 112
 
Go to the top of the page
 
+Quote Post
Семён
сообщение Nov 10 2006, 10:13
Сообщение #2


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

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



Цитата(Terapefft @ Nov 10 2006, 11:54) *
Доброго времени суток господа!!
Подскажите пожалуйста начинающему....Передо мной стоит задача следующего характера: в оборудовании имеется плата индикации (на ней стоит tiny2313) и плата управления (на ней mega8). Недавно я переделывал прогу для тини2313 (раньше там использовался s1200). Сейчас стоит задача переделать немного прогу на мегу8....
Сейчас она управляет клапаном, т.е. при достижении клапаном определеного датчика (на 0,5 литра или на 1 л), он возвращается обратно, дозируя тем самым необходимое количество жидкости. Но теперь необходимо просто поставить насос (сигнал с платы идет на частотник, а насос подключен к нему), который будет дозировать следующим образом: включатся на некоторый промежуток времени (который можно будет изменять) и выключатся. Алгоритм работы я представляю: нужен регистр в который будет сохранятся введеное значение с платы индикации, потом это значение должно попасть в счетчик, и в самой програме после выставления флага на включение насоса перейти на ПП обработки прерывания для выдержания насоса во включеном состоянии нужное количество времени. Посоветуйте пожалуйста как это все лучше сделать... Вот исходник проги для платы управления

В меге8 есть еще один таймер, который Вы не используете в программе. Запрограммируйте его с нужной Вам дискретностью (точность отсчета) и по переполнению декрементируете значение с платы индикации, как дойдете до нуля выставляете флаг «Насос отключить»


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


Гуру
******

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



Цитата(Terapefft @ Nov 10 2006, 11:54) *
Посоветуйте пожалуйста как это все лучше сделать... Вот исходник проги для платы управления

Посоветовать не жалко... Не обижайтесь, но может Вам опыта набраться, прежде чем двухпроцессорные комплексы разрабатывать ?
Простейший вопрос - обработка ошибок. Человек нажимает на кнопки, а если что-то не отработало, но на табло он увидеть, что что-то не в порядке. Значит, подключение должно быть двухсторонним.
Значит, должен быть интерфейс.
И пошло-поехало...
А для отработки временных задержек должно работать прерывание таймера с фиксированной длительностью.


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
Terapefft
сообщение Nov 10 2006, 11:22
Сообщение #4


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

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



2 Dog Pawlowa я прекрасно понимаю что не достаточно мне еще опыта, но к сожалению мое начальство это мало интересует...тем более что в нашей фирме эту тему больше некому поручить. Я тут недавно мучался с тини2313, переделывал под них проги...но с ними как то попроще было...
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Nov 10 2006, 11:46
Сообщение #5


Гуру
******

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



Цитата(Terapefft @ Nov 10 2006, 14:22) *
2 Dog Pawlowa я прекрасно понимаю что не достаточно мне еще опыта, но к сожалению мое начальство это мало интересует...тем более что в нашей фирме эту тему больше некому поручить.

Ну, повезло значит. Так лучше, чем просто штаны просиживать :-)
Попробуйте все-таки начать с проектирования сверху вниз - то есть определить функции двух блоков и их взаимодействие. Поверьте, таймеры и программа - это абсолютно неважно на этом этапе. В большинстве моих приборов работает прерывание таймера с частотой 1 кГц, и его период 1 мс вполне достаточен для точности задания времени. Аппаратный таймер не нужен. Попробуйте написать такой фрагмент программы.

Сообщение отредактировал Dog Pawlowa - Nov 10 2006, 11:48


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
Семён
сообщение Nov 10 2006, 11:47
Сообщение #6


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

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



Цитата(Terapefft @ Nov 10 2006, 14:22) *
Я тут недавно мучался с тини2313, переделывал под них проги...но с ними как то попроще было...

Да помню тот вопрос, кстати, Вы обещали написать, в чем были грабли.


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


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

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



Цитата(Семён @ Nov 10 2006, 14:47) *
Цитата(Terapefft @ Nov 10 2006, 14:22) *

Я тут недавно мучался с тини2313, переделывал под них проги...но с ними как то попроще было...

Да помню тот вопрос, кстати, Вы обещали написать, в чем были грабли.

я на самом деле уже переделал штуки 4 программы smile.gif в первых трех надо было просто добавить инициализацию стэка, добавить строчку в ПП записи в EEPROM, и правильно выставить фузыsmile.gif а вот с последней пришлось помучатся...
Go to the top of the page
 
+Quote Post
Terapefft
сообщение Nov 10 2006, 14:27
Сообщение #8


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

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



Цитата(Dog Pawlowa @ Nov 10 2006, 14:46) *
Цитата(Terapefft @ Nov 10 2006, 14:22) *

2 Dog Pawlowa я прекрасно понимаю что не достаточно мне еще опыта, но к сожалению мое начальство это мало интересует...тем более что в нашей фирме эту тему больше некому поручить.

Ну, повезло значит. Так лучше, чем просто штаны просиживать :-)
Попробуйте все-таки начать с проектирования сверху вниз - то есть определить функции двух блоков и их взаимодействие. Поверьте, таймеры и программа - это абсолютно неважно на этом этапе. В большинстве моих приборов работает прерывание таймера с частотой 1 кГц, и его период 1 мс вполне достаточен для точности задания времени. Аппаратный таймер не нужен. Попробуйте написать такой фрагмент программы.

у меня есть обе проги рабочие, там нада просто выкинуть подпрограму где обрабатываются сигналы от датчиков и вставить свое, просто эти гады мне времени мало выделили на все это. А объяснять им бесполезно. Я вот тут сделал подпрограмму для второго таймера с нужной мне точностью

ldi rin4, 0b00000111;
out tccr2, rin4;
ldi rin4, $3c;
out tcnt2, rin4;

ldi rin4, 0b01000000;
out timsk, rin4;

а вот как сделать так чтобы время включения насоса менять можно было бы?
вот на всякий случай прога для ПИ
Прикрепленные файлы
Прикрепленный файл  ind.txt ( 12.2 килобайт ) Кол-во скачиваний: 91
 
Go to the top of the page
 
+Quote Post
slog
сообщение Nov 10 2006, 14:46
Сообщение #9


Знающий
****

Группа: Свой
Сообщений: 961
Регистрация: 28-11-05
Пользователь №: 11 489



Я сильно не разбирался с твоей программой, так просто взглянул.
Вот что заметил сразу:

;-----------------------------------------------------------------------
; подпрограмма перевода числа в диапазоне 0 - 15 в код семисегментного
; индикатора числам от 10 до 15 соответствует код от A до F

Вот это вообще-то по таблице делать лучше


--------------------
В действительности всё не так, как на самом деле.
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Nov 10 2006, 19:19
Сообщение #10


Гуру
******

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



Цитата(Terapefft @ Nov 10 2006, 17:27) *
Я вот тут сделал подпрограмму для второго таймера с нужной мне точностью

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

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


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Nov 11 2006, 20:26
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(slog @ Nov 10 2006, 17:46) *
Я сильно не разбирался с твоей программой, так просто взглянул.
Вот что заметил сразу:

;-----------------------------------------------------------------------
; подпрограмма перевода числа в диапазоне 0 - 15 в код семисегментного
; индикатора числам от 10 до 15 соответствует код от A до F

Вот это вообще-то по таблице делать лучше


biggrin.gif

Видал я линейных программистов, но чтобы до такой степени. blink.gif

Если таблицей(согласно 'slog'), то на асме это делается так (wl = 0-15):

ldi Zl,low(TablHex*2)
ldi Zh,high(TablHex*2)
add Zl,wl ; определить смещение
adc Zh,Vol0
lpm wl,Z ; найти истинный код символа
...
TablHex:
.db $30, $31, $32, $33, $34, $35, $36, $37
.db $38, $39, $41, $42, $43, $44, $45, $46

(таблица другая)
Банально, правда?
Go to the top of the page
 
+Quote Post
defunct
сообщение Nov 11 2006, 23:24
Сообщение #12


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Terapefft
Писали бы такого рода программы на C.. Оно проще и быстрее будет.
Компилятор сгенерит более компактный код, чем тот что Вы пишете..
Go to the top of the page
 
+Quote Post
Kovrov
сообщение Nov 12 2006, 14:26
Сообщение #13


Мастер-фломастер
****

Группа: Свой
Сообщений: 611
Регистрация: 29-12-05
Пользователь №: 12 700



Цитата(Terapefft @ Nov 10 2006, 15:22) *
но к сожалению мое начальство это мало интересует...тем более что в нашей фирме эту тему больше некому поручить.

Offtopic:
последнее время очень модно стало писать на асм именно на рабочем месте, в надежде на плохую читаемость или вовсе не читаемость другим человеком , если к примеру писавшего увольняют или сам увольняется.
Наверное какая никакая отрада для души.


--------------------
Вон ПОПОВ, клоун клоуном, а радио изобрел!!
Go to the top of the page
 
+Quote Post
vesago
сообщение Nov 12 2006, 14:45
Сообщение #14


Тутэйшы
****

Группа: Свой
Сообщений: 708
Регистрация: 30-11-04
Пользователь №: 1 263



Несомненное есть и такое. Но имхо - это маразм. В наше время на мой взгляд имеет значение только скорость. Ушло в прошлое время когда программеру платили за строчки кода и неразрывно связанной с этим идеи эксклюзивности. Незря все большии позиции завоевывает опенсоурс.
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Nov 12 2006, 14:57
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(vesago @ Nov 12 2006, 17:45) *
Несомненное есть и такое. Но имхо - это маразм. В наше время на мой взгляд имеет значение только скорость. Ушло в прошлое время когда программеру платили за строчки кода и неразрывно связанной с этим идеи эксклюзивности. Незря все большии позиции завоевывает опенсоурс.

Если взламывать, то на Си сложнее чем на асме. А если документацию передавать, то наново легче написать чем разобраться и внести изменения. Здесь, конечно с асмом посложнее.
Go to the top of the page
 
+Quote Post

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

 


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


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