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

 
 
> 2 байта в AVR, как сранить и обработать 16 разрядов в ATmega?
pimen
сообщение Dec 23 2007, 23:37
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 67
Регистрация: 30-11-07
Пользователь №: 32 846



Вопрос собственно в следующем:
разработана плата (и что плохо изготовлена), где есть связка Atmega128 и термодатчик MAX6630
http://www.maxim-ic.com/quick_view2.cfm/qv_pk/2577/t/al
Выход термодатчика - 13 бит (12+знак) и еще мусор до 2 байт (по spi).
как сравнить и обработать данные в восьмибитном микроконтроллере?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
pimen
сообщение Jan 11 2008, 09:35
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 67
Регистрация: 30-11-07
Пользователь №: 32 846



по поводу оператора goto, пользуясь вашими советами, забуду.
Подскажите, как корректно переместиться из подпрограммы в main()
структура программы приведена ниже:

void hot(void)
{
//отсюда надо попасть в main()
}

void compare(void)
if (....)
{
hot()
}

SIGNAL(SIG_OVERFLOW1)
{
...
compare()
...
}

main()
{
// сюда надо перескочить из hot()
}
Go to the top of the page
 
+Quote Post
alexander55
сообщение Jan 11 2008, 10:34
Сообщение #3


Бывалый
*****

Группа: Свой
Сообщений: 1 584
Регистрация: 7-08-07
Пользователь №: 29 615



Цитата(pimen @ Jan 11 2008, 12:35) *
по поводу оператора goto, пользуясь вашими советами, забуду.
Подскажите, как корректно переместиться из подпрограммы в main()
структура программы приведена ниже:

void hot(void)
{
//отсюда надо попасть в main()
}

void compare(void)
if (....)
{
hot()
}

SIGNAL(SIG_OVERFLOW1)
{
...
compare()
...
}

main()
{
// сюда надо перескочить из hot()
}

Давайте уточним задачу.
По некоторому прерыванию SIGNAL(SIG_OVERFLOW1)
при выполнении каких-то условий (скажем аварийных), Вы быстро должны произвести какие-то действия в hot() и завершить выполнение прерывания.
Так или что-то еще осталось за кадром ?
PS. Вспомнил про обсуждения на эту тему
http://electronix.ru/forum/index.php?showt...&hl=*goto*#
Go to the top of the page
 
+Quote Post
pimen
сообщение Jan 11 2008, 11:42
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 67
Регистрация: 30-11-07
Пользователь №: 32 846



Цитата(alexander55 @ Jan 11 2008, 13:34) *
Давайте уточним задачу.
По некоторому прерыванию SIGNAL(SIG_OVERFLOW1)
при выполнении каких-то условий (скажем аварийных), Вы быстро должны произвести какие-то действия в hot() и завершить выполнение прерывания.
Так или что-то еще осталось за кадром ?
PS. Вспомнил про обсуждения на эту тему
http://electronix.ru/forum/index.php?showt...&hl=*goto*#


Вы совершенно правильно поняли
в hot() происходит выключение источников, потом в main(), пока есть авария (в данном случае перегрев), ждем устранение аварийного фактора, и поехали дальше

спасибо за ссылку
Go to the top of the page
 
+Quote Post
alexander55
сообщение Jan 11 2008, 12:12
Сообщение #5


Бывалый
*****

Группа: Свой
Сообщений: 1 584
Регистрация: 7-08-07
Пользователь №: 29 615



Цитата(pimen @ Jan 11 2008, 14:42) *
Вы совершенно правильно поняли
в hot() происходит выключение источников, потом в main(), пока есть авария (в данном случае перегрев), ждем устранение аварийного фактора, и поехали дальше


В main Вы попадете по окончании прерывания без всяких фокусов (причем с корректным стеком).
Если Вам надо заблокировать какие-то действия в прерывании, установите флаг аварии при выходе за допустимые пределы и анализируя этот флаг не выполняйте, что не требуется.
После устранения аварии этот флаг сбросьте (подозреваю, что он уже существует).
Вот и все.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- pimen   2 байта в AVR   Dec 23 2007, 23:37
- - DASM   C чем именно сравнить и как обработать ? На каком ...   Dec 24 2007, 00:13
- - arttab   Организовать хранение 2 Б + Цитатамусор до 2 байт ...   Dec 24 2007, 02:49
|- - MMos   Расскажи поподробнее, что бы ты делал с данными, е...   Dec 25 2007, 08:14
- - pimen   первоначально планировал сравнение значения темпер...   Dec 25 2007, 11:07
- - Algol   Попробуйте потестировать в отладчике мою функцию u...   Dec 25 2007, 11:22
|- - DASM   Цитата(Algol @ Dec 25 2007, 14:22) отрыл ...   Dec 26 2007, 01:55
- - arttab   Довольно странные вопросы. Если пользуетесь Си ко...   Dec 26 2007, 01:28
- - alexander55   Цитата(pimen @ Dec 24 2007, 02:37) Если ...   Dec 26 2007, 05:52
|- - MMos   Снимаю шляпу перед автором алгоритма. Красота-а-а-...   Dec 28 2007, 12:01
|- - MMos   Ниже приведена ассемблерная реализация алгоритма д...   Dec 29 2007, 09:08
- - pimen   Всех с наступившим Новым Годом! написал прогу ...   Jan 2 2008, 23:35
- - vooon   прочитать например так: (старший байт первый) Код...   Jan 3 2008, 11:41
- - slanted   Цитата(pimen @ Dec 24 2007, 03:37) Вопрос...   Jan 3 2008, 11:51
|- - pimen   Цитата(slanted @ Jan 3 2008, 14:51) Для э...   Jan 3 2008, 14:57
|- - slanted   Цитата(pimen @ Jan 3 2008, 18:57) а как э...   Jan 3 2008, 16:36
- - pimen   ЛЮДИ!!!! Объясните! есть прогр...   Jan 6 2008, 01:02
|- - zltigo   Цитата(pimen @ Jan 6 2008, 03:02) это неч...   Jan 6 2008, 01:47
|- - slanted   Цитата(zltigo @ Jan 6 2008, 05:47) Главна...   Jan 6 2008, 12:12
|- - zltigo   Цитата(slanted @ Jan 6 2008, 14:03) И где...   Jan 6 2008, 12:16
- - AHTOXA   ЦитатаT=(0b10001100<<8)>>3; ... выдает...   Jan 6 2008, 05:41
- - pimen   Еще вопрос по С: использовал оператор goto. Сам оп...   Jan 10 2008, 20:22
|- - mdmitry   Цитата(pimen @ Jan 10 2008, 23:22) Еще во...   Jan 10 2008, 20:48
|- - slanted   Цитата(pimen @ Jan 11 2008, 00:22) Еще во...   Jan 10 2008, 22:28
|- - alexander55   Цитата(pimen @ Jan 10 2008, 23:22) Еще во...   Jan 11 2008, 08:34


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

 


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


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