Перейти к содержанию

Не Могу Передать Значение Переменной Из Main В Прерывание


mappy89

Рекомендуемые сообщения

Доброго времени суток, ситуация следующая : имеется контроллер mega64, дисплей, клавиатура (12 кн) и кнопка: с клавы вводим число с отображением на дисплее, по нажатию на кнопке срабатывает прерывание и дальше что то делаем с числом. Проблема в том, что значение переменной с вводимым числом не передаётся в обработчик прерывания, вот код:

volatile double cislo=0; //само число
volatile double temp=0;
volatile unsigned char dd1[7]; //для хранения символа с клавы

void vvod(); //функция ввода данных с клавы

main()
{
lcd_init(); //инициализируем дисплей и клаву
keyb_init();

EIMSK|=(1<<INT5); //иниц прерывания
EICRA|= (1<<ISC01)|(1<<ISC00);

while(1)
{
KEYB_ScanKeyboard();
vvod();
}
}

void vvod()
{
dd1[0]=KEYB_GetKey();

lcd_puts(&dd1[0]); //вывод на дисплей

temp=(double)dd1[0]; //преобраз unsigned char в double
cislo=cislo*10+temp;
}

SIGNAL(SIG_INTERRUPT5)
{
if (cislo) lcdputs("OK!");
else lcdputs("Fail");
}

Значение при вводе числа каким то образом теряется, в чём тут может быть косяк?

Изменено пользователем mappy89
Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

В общем проблема, как оказалось, вообще не в этом. При срабатывании прерывания INT5 контроллер начинает почему-то греться, даже если убрать оттуда любой код. Кто нибудь с этим сталкивался?

Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Hongfa для различных применений в Компэл. Большой выбор в наличии!

Компания HONGFA - это не только крупнейший в мире производитель электромеханических реле, но также производитель конденсаторов, вакуумных прерывателей, трансформаторов и низковольтного коммутационного оборудования. На складе КОМПЭЛ регулярно поддерживаются около 100 самых популярных позиций электромеханических реле. Реле Hongfa могут заместить многие изделия производства недоступных брендов. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Alex, ужастики для детей малолетних - дети, киньте эту каку, током убъёт ...

Автору - зачем гнать что-то на дисплей в прерывании? Это вообще нехорошо ... Может у Вас вообще lcdputs в прерывании глючит сам по себе. Вы это проверяли?

Взводите в прерывании флаг, а по флагу в main пишите на дисплей.

PS. Риторический вопрос - зачем здесь double?

Ярые антифанатики плавающей точки шарахаются от неё, как чёрт от ладана, лепят, тулят во все дырки жуткие табличные алгоритмы, где надо и где не надо, а у Вас наоборот ....

Или это повыдергано из какого-то более сложного проекта?

И несколько слов о погоде.

Не смог удержаться, извините.

lcd_puts(&dd1[0]); //вывод на дисплей

&dd1[0] - 100% эквивалент dd1:

lcd_puts(dd1); //вывод на дисплей

Изменено пользователем hd44780
Ссылка на комментарий
Поделиться на другие сайты

Тренды и лучшие решения для разработки зарядных станций в России

К 2029 году в России прогнозируется увеличение числа зарядных станций до 40 000. При этом отечественный рынок электротранспорта имеет климатические, потребительские и географические особенности. Для успешной разработки и построения инфраструктуры станций заряда в России идеальным вариантом является использование решений и электронных компонентов китайских производителей – лидеров индустрии электротранспорта и возобновляемой энергетики, которые уже представлены в КОМПЭЛ. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Секреты депассивации литиевых батареек FANSO EVE Energy

Самыми лучшими параметрами по энергоемкости, сроку хранения, температурному диапазону и номинальному напряжению обладают батарейки литий-тионилхлоридной электрохимической системы. Но при длительном хранении происходит процесс пассивации. Разберем в чем плюсы и минусы, как можно ее избежать или уменьшить последствия и как проводить депассивацию батареек на примере продукции и рекомендаций компании FANSO EVE Energy. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

hd44780, это урезанный кусок из моего проекта, дабл там стоит, потому что нужен )

а что плохого в том, что в прерывании осуществляется вывод на жк? работао всегда без проблем

пысы: проблему обошёл обходным путём, всем спасибо )

Изменено пользователем mappy89
Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
  • Сообщения

    • Сразу скажу, я не занимаюсь поиском или продажей МД. Делал ради спортивного интереса. На пенсии делать нечего, вот и решил проверить свою идею. Может кто-то и делает так, но в поиске не встретил подобного. Извиняюсь что не делал фото или видео, но изначально не планировал выкладывать. Просто есть вопрос, но в конце. Итак. Уложил катушки и закрепил в нескольких точках небольшим количеством термоклея. Катушку ТХ подогнул примерно в -1 Вольт разбаланса и закапал участок А парафином. Затем залил все полиэфирной смолой. После застывания расплавил и выдул феном парафин. На всякий случай прошелся по краям "каньёна" фрезой кукуруза, прикрыв катушку куском стеклотекстолита. Просверлил отверстие и пропустил нитку через катушку и в отверстие. Завяза с натягом за корпусом катушки, вставил палочку и начал закручивать.  Отлично настраивается, плавно перешел через 0 и сделал +30мВ. Купил эпоксидной смлы, дома полиэфиркой не зальёш, сильно вонючая. А в гараже сплошной металл.  Эпоксидка застывает очень долго. Через пару часов проверил баланс. 40. Покрутив нитку понял что баланс в минусе. Предпологаю что дело в нитке, но это не точно. Нитку брал ХБ, и она возможно от эпоксидке размокла и вытянулась. Закрутил опять на +50 мВ. и пошел спать. Утром смола застыла, но поверхность еще липкая. Смола кака. Баланс 20 мВ. Теперь вопрос. Баланс у меня в + или -. Подношу медь, баланс растет. Интересно ведет себя диск СД. Баланс четко снижается, переходит через 0 и начинает расти.
    • Для снижения коммутационных искажений можно попробовать включить мощные диоды параллельно истоковым резисторам
    • Проверяйте режимы работы ШИМ при включении и блокировке. На этой схеме это резистор R10 и D1 на блокировку и R5, D2, C6, R4 на плавный старт TL494   моя схема.spl7 Краткое описание работы управы ТУТ
    • @Forzen На 99,99% выведены земля, так называемый - и 12+ на видеокарты, в манинге только они и нужны. Это не заземление то что должно быть в розетках.  
    • Я в таком случае родной ус обрезал и поверх приклепал новый.
    • Зачем весь коптер-то? Движки и корпус же целые. "Мозги" поменять и вперёд.
    • Нет никакого коварства.  Из описания проекта следует что надо просто в двух местах плставить галочки и нажать одну кнопку. Но у меня не получается. Руки не той системы. 
×
×
  • Создать...