Например TDA7294

Форум РадиоКот • Просмотр темы - CodeVision AVR в вопросах и ответах
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Пн июл 28, 2025 21:18:56

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 8295 ]     ... , , , 34, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вт мар 17, 2009 00:27:43 
Вымогатель припоя
Аватар пользователя

Зарегистрирован: Вс мар 04, 2007 01:17:12
Сообщений: 690
Рейтинг сообщения: 0
при записи в еепром, так как она 16 битная, у меня цифры дублируются, как сделать что бы не дублировались?

в массиве BYTE[6] уже содержатся данные

Код:
 for (j=0;j<6;j++) 
{
*eepr=BYTE[j];
*
eepr++;
}


вот этот цикл пишет одну и туже строчку последовательно два раза, получается
Код:
 144D05F11910|144D05F11910


Последний раз редактировалось Alexeus Вт мар 17, 2009 00:35:39, всего редактировалось 3 раз(а).

Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вт мар 17, 2009 00:29:39 
Опытный кот
Аватар пользователя

Карма: 2
Рейтинг сообщений: 1
Зарегистрирован: Пн мар 16, 2009 21:40:57
Сообщений: 828
Рейтинг сообщения: 0
ИМХО наверно надо в начале проверить новА ли инфа для записи. Т.е. если в ячейке тоже самое лежит то не нужно делать новую запись в нее того же самого.


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вт мар 17, 2009 00:41:52 
Мучитель микросхем

Зарегистрирован: Вс июн 01, 2008 12:16:38
Сообщений: 459
Рейтинг сообщения: 0
Alexeus писал(а):
при записи в еепром, так как она 16 битная, у меня цифры дублируются, как сделать что бы не дублировались?

Если речь идет о еепром, которая на борту АВР, то Вам надо документацию прочитать, Вы не найдете там упоминания о 16 битной еепром, потому что она 8-ми битная.
По поводу кода - по данному фрагменту ничего не ясно, может сможете поподробней объяснить.


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вт мар 17, 2009 00:46:21 
Вымогатель припоя
Аватар пользователя

Зарегистрирован: Вс мар 04, 2007 01:17:12
Сообщений: 690
Рейтинг сообщения: 0
может задержку от дребезга кнопки маловато поставил, два раза успевает сработать...


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вт мар 17, 2009 08:47:01 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2116
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18403
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
Alexeus писал(а):
при записи в еепром, так как она 16 битная, у меня цифры дублируются, как сделать что бы не дублировались?

в массиве BYTE[6] уже содержатся данные

Код:
 for (j=0;j<6;j++) 
{
*eepr=BYTE[j];
*
eepr++;
}


вот этот цикл пишет одну и туже строчку последовательно два раза, получается
Код:
 144D05F11910|144D05F11910
как определены указатель eepr и массив BYTE? код в студию

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вт мар 17, 2009 09:59:53 
Вымогатель припоя
Аватар пользователя

Зарегистрирован: Вс мар 04, 2007 01:17:12
Сообщений: 690
Рейтинг сообщения: 0
Код:
 volatile unsigned char BYTE[6];
eeprom char *eepr;

interrupt [EXT_INT0] void ext_int0_isr(void)
{
for (j=0;j<6;j++) 
{
*eepr=BYTE[j];
*eepr++;
}
}


Вернуться наверх
 
Распродажа паяльного оборудования ATTEN!
Паяльные станции, паяльники и аксессуары по самой выгодной цене.

По промокоду radiokot скидка 10%
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вт мар 17, 2009 10:55:44 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2116
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18403
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
ваш цикл не может делать дубль данных в EEPROM. если данные дублируются - это 100% из-за того, что дважды вызывается обработчик прерывания. ваш цикл будет длиться около 50 миллисекунд - это ОЧЕНЬ много по меркам AVR - вас предупреждали.

если прерывание у вас поступает более часто, нежели раз в 50 мс, то обязательно к моменту завершения обработчика уже снова придет запрос на это же самое прерывание, в результате немедля после его завершения прерывание снова обработается - вот вам и дубль.

не знаю, что вы там задумали такое, но вкачестве костыля могу порекомендовать перед выходом из обработчика сбросить флаг запроса прерывания.

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вт мар 17, 2009 12:54:23 
Вымогатель припоя
Аватар пользователя

Зарегистрирован: Вс мар 04, 2007 01:17:12
Сообщений: 690
Рейтинг сообщения: 0
Просто мне нужно зафиксировать некоторые данные в конкретном режиме, поэтому я вручную пишу их в еепром, а потом анализирую. Режимы я сам сменяю. Новые данные будут только после того как я запишу одни и переключу режим. Так что медлительность еепром тут не проблема.

спасибо.


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вт мар 17, 2009 12:57:01 
Опытный кот
Аватар пользователя

Карма: 2
Рейтинг сообщений: 1
Зарегистрирован: Пн мар 16, 2009 21:40:57
Сообщений: 828
Рейтинг сообщения: 0
Alexeus писал(а):
я вручную пишу их в еепром, а потом анализирую.
А наоборот нельзя сделать ?


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вт мар 17, 2009 14:02:35 
Вымогатель припоя
Аватар пользователя

Зарегистрирован: Вс мар 04, 2007 01:17:12
Сообщений: 690
Рейтинг сообщения: 0
ikarab писал(а):
Alexeus писал(а):
я вручную пишу их в еепром, а потом анализирую.
А наоборот нельзя сделать ?


в смысле наоборот?


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вт мар 17, 2009 17:11:17 
Опытный кот
Аватар пользователя

Карма: 2
Рейтинг сообщений: 1
Зарегистрирован: Пн мар 16, 2009 21:40:57
Сообщений: 828
Рейтинг сообщения: 0
SAU писал(а):
Учебник по сабжу кому надо.
вести 62 мега :))


Я скачал всего 4.6 Мб - все расписано с нуля и по CVAVR и по VMLAB. То что нужно начинающиему по микроконтроллерам AVR и PIC и главное понятно - http://www.onlinedisk.ru/file/101436/
И там есть библиотека книг для свободного скачивания - т.е. книги то вообще на любой вкус - хоть Си хоть АСМ - выбирай что нравится, читай да учись. Рассказано где скачать все программы как поставить настроить запустить. и PROTEUS тоже.


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вт мар 17, 2009 18:40:29 
Родился

Зарегистрирован: Пт янв 02, 2009 21:19:07
Сообщений: 13
Откуда: Томск
Рейтинг сообщения: 0
Подскажите пожалуйста как в CVAVR открыть файл с прошивкой .hex и загрузить его в МК? Какой меню надо открывать и т.д.?


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вт мар 17, 2009 18:50:50 
Мудрый кот
Аватар пользователя

Карма: 1
Рейтинг сообщений: 7
Зарегистрирован: Ср апр 23, 2008 17:44:56
Сообщений: 1708
Откуда: Россия, г. Нижний Новгород
Рейтинг сообщения: 0
ExtaZy писал(а):
Подскажите пожалуйста как в CVAVR открыть файл с прошивкой .hex и загрузить его в МК? Какой меню надо открывать и т.д.?


обучалку почитайте http://radiokot.ru/start/mcu_fpga/avr/

_________________
абажаю мой KIA CEED Изображение
Пресекать нарушения закона мой долг и обязанность как гражданина моей страны


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб мар 21, 2009 19:46:23 
Вымогатель припоя
Аватар пользователя

Зарегистрирован: Вс мар 04, 2007 01:17:12
Сообщений: 690
Рейтинг сообщения: 0
Что то не получается проверить несколько бит, выставлены или очищены.

пользую
Код:
 if (BYTE[0] & 0b0000111) {}
-не получается, пробую
Код:
 if (BYTE[0] & (1<<0) & (1<<1) & (1<<2)) {}
-такое ощущение, что проходит только первое сравнение...

Так как же быть?


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб мар 21, 2009 20:21:02 
Опытный кот
Аватар пользователя

Карма: 2
Рейтинг сообщений: 1
Зарегистрирован: Пн мар 16, 2009 21:40:57
Сообщений: 828
Рейтинг сообщения: 0
ExtaZy писал(а):
Подскажите пожалуйста как в CVAVR открыть файл с прошивкой .hex и загрузить его в МК? Какой меню надо открывать и т.д.?


Вам надо открыть программатор CVAVR - в меню это микросхемка справа от красного жучка.
Выбрать нужный МК и потом через меню файл открыть файл прошивки.

Alexeus писал(а):
Код:
 
if (BYTE[0] & 0b0000111) {};

if (BYTE[0] & (1<<0) & (1<<1) & (1<<2)) {};
-


Вот этому 0b0000111 соответствует ((1<<0)|(1<<1)|(1<<2))

А тут надо "логическое И" применить:

if (BYTE[0] && 0b0000111) {};


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб мар 21, 2009 20:43:44 
Вымогатель припоя
Аватар пользователя

Зарегистрирован: Вс мар 04, 2007 01:17:12
Сообщений: 690
Рейтинг сообщения: 0
Спасибо, вспомнил про логическое "и" и сравнения... Я правда немного по-другому сделал, но тоже заработало :)
Код:
 if (BYTE[0] & (1<<0) && BYTE[0] & (1<<1) && BYTE[0] & (1<<2))


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб мар 21, 2009 20:53:59 
Опытный кот
Аватар пользователя

Карма: 2
Рейтинг сообщений: 1
Зарегистрирован: Пн мар 16, 2009 21:40:57
Сообщений: 828
Рейтинг сообщения: 0
Не советую на скобках экономить.

Неужели вам ясно как будет выполнено ваше длиииииииииинное условие ???


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вс мар 22, 2009 10:35:26 
Мучитель микросхем

Зарегистрирован: Вс июн 01, 2008 12:16:38
Сообщений: 459
Рейтинг сообщения: 0
ikarab писал(а):
А тут надо "логическое И" применить:

if (BYTE[0] && 0b0000111) {};


Вопрос что нужно было Alexeus, если проверить на 0 BYTE[0], то Вы правы, а если узнать есть ли хотя бы в 1 из трех младших битов 1 , то Вы ошибаетесь.


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вс мар 22, 2009 12:40:41 
Опытный кот
Аватар пользователя

Карма: 2
Рейтинг сообщений: 1
Зарегистрирован: Пн мар 16, 2009 21:40:57
Сообщений: 828
Рейтинг сообщения: 0
Совершенно верно !


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вс мар 22, 2009 12:43:57 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2116
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18403
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
smac писал(а):
ikarab писал(а):
А тут надо "логическое И" применить:

if (BYTE[0] && 0b0000111) {};


Вопрос что нужно было Alexeus, если проверить на 0 BYTE[0], то Вы правы, а если узнать есть ли хотя бы в 1 из трех младших битов 1 , то Вы ошибаетесь.

во-первых, данное условие будет истинным всегда, если BYTE[0] не равно нулю - без разницы, какие биты в нем будут установлены. Нормальный компилятор вообще превратит при оптимизации это выражение в абсолютно ему аналогичное
Код:
if(BYTE[0]){};

во-вторых, я просто не понимаю, что делают вопросы по синтаксису Си в теме про компилятор?!

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 8295 ]     ... , , , 34, , , ...  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y