Например TDA7294

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

Текущее время: Вт июл 29, 2025 06:23:07

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


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



Начать новую тему Ответить на тему  [ Сообщений: 8295 ]     ... , , , 27, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пт дек 05, 2008 15:47:14 
Электрический кот
Аватар пользователя

Карма: 3
Рейтинг сообщений: 2
Зарегистрирован: Вт окт 21, 2008 11:46:23
Сообщений: 1051
Откуда: Барнаул
Рейтинг сообщения: 0
To ARV Роман, на вас вся надежда! :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пт дек 05, 2008 16:03:36 
Ум, честь и совесть. И скромность.
Аватар пользователя

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

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

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пт дек 05, 2008 16:06:23 
Электрический кот
Аватар пользователя

Карма: 3
Рейтинг сообщений: 2
Зарегистрирован: Вт окт 21, 2008 11:46:23
Сообщений: 1051
Откуда: Барнаул
Рейтинг сообщения: 0
Сэмулировал всё это дело в Протеусе. На индикаторе только:

time: : . Никаких значений нет. Даже установленных 12.00.00


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пт дек 05, 2008 16:10:16 
Ум, честь и совесть. И скромность.
Аватар пользователя

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

time: : . Никаких значений нет. Даже установленных 12.00.00

ну, вы показывали кусок кода - что там выше - я не в курсе. например, lcd_buffer - есть/нет? и потом, лично мне что-то не очень понравился формат %с:%с:%с: - мне кажется, более правильно было бы %u:%u:%u

а вообще, у меня на CodeVision аллергия и тошнота :)

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

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пт дек 05, 2008 16:15:19 
Электрический кот
Аватар пользователя

Карма: 3
Рейтинг сообщений: 2
Зарегистрирован: Вт окт 21, 2008 11:46:23
Сообщений: 1051
Откуда: Барнаул
Рейтинг сообщения: 0
Всё переделал поставил %u:%u:%u. На индикаторе всё высветилось, но вот загрузка МК - 99% и считает секунды с периодом секунд 20. Увеличение тактовой частоты МК ничего не даёт.


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пт дек 05, 2008 16:44:44 
Электрический кот
Аватар пользователя

Карма: 3
Рейтинг сообщений: 2
Зарегистрирован: Вт окт 21, 2008 11:46:23
Сообщений: 1051
Откуда: Барнаул
Рейтинг сообщения: 0
Вот так это всё выглядит:


Длинные листинги оформляются вложением, 1024 раза уже говорили... Aheir

Файл протеуса прилепил.http://radiokot.ru/forum/viewtopic.php?p=153760#153760


Последний раз редактировалось Igor_67 Вт дек 09, 2008 07:32:25, всего редактировалось 1 раз.

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

По промокоду radiokot скидка 10%
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пт дек 05, 2008 20:03:06 
Ум, честь и совесть. И скромность.
Аватар пользователя

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

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

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб дек 06, 2008 15:19:07 
Встал на лапы

Карма: -12
Рейтинг сообщений: 1
Зарегистрирован: Вс дек 02, 2007 14:11:07
Сообщений: 137
Откуда: Кривой Рог
Рейтинг сообщения: 0
Здраствуйте, возник такой вапрос. Пишу свою библиотеку которая должна обработать текст, а вот как с главной функцыи main(void) перекинуть текст в функцыю библиотеки незнаю. Подчкажете?
П.С. я могу текст перекинуть побуквам с помощю цыкла но хотелосьбы цэликом.


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб дек 06, 2008 15:25:50 
Ум, честь и совесть. И скромность.
Аватар пользователя

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

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

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб дек 06, 2008 16:00:04 
Встал на лапы

Карма: -12
Рейтинг сообщений: 1
Зарегистрирован: Вс дек 02, 2007 14:11:07
Сообщений: 137
Откуда: Кривой Рог
Рейтинг сообщения: 0
Пробывал, выдаёт ошибку, наверно неправельно чтото делаю
Код:
unsigned char txt[]="Kolya";   //Текст
c1=&txt[];                             //указатель
LCD_text(10,10,*c1);              //передаём указатель функцыи


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб дек 06, 2008 19:36:41 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2116
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18403
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
Doniak писал(а):
Пробывал, выдаёт ошибку, наверно неправельно чтото делаю
Код:
unsigned char txt[]="Kolya";   //Текст
c1=&txt[];                             //указатель
LCD_text(10,10,*c1);              //передаём указатель функцыи


LCD_text(10,10,*c1); - это что такое?

объявляем указатель на символ:
unsigned char *c1;

присваиваем указателю адрес начала строки:
с1 = &txt;

в нормальных реализациях Си можно и так сразу:
unsigned char *c1 = "строка";

а в вашем случае LCD_text(10,10,c1); или LCD_text(10,10,&txt);

а вообще читайте книжки по Си

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

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб дек 06, 2008 19:51:57 
Встал на лапы

Карма: -12
Рейтинг сообщений: 1
Зарегистрирован: Вс дек 02, 2007 14:11:07
Сообщений: 137
Откуда: Кривой Рог
Рейтинг сообщения: 0
ARV писал(а):
LCD_text(10,10,*c1); - это что такое?
объявляем указатель на символ:
unsigned char *c1;
присваиваем указателю адрес начала строки:
с1 = &txt;
в нормальных реализациях Си можно и так сразу:
unsigned char *c1 = "строка";
а в вашем случае LCD_text(10,10,c1); или LCD_text(10,10,&txt);
а вообще читайте книжки по Си

о всё заработало спасиба :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пн дек 08, 2008 07:53:23 
Электрический кот
Аватар пользователя

Карма: 3
Рейтинг сообщений: 2
Зарегистрирован: Вт окт 21, 2008 11:46:23
Сообщений: 1051
Откуда: Барнаул
Рейтинг сообщения: 0
ARV писал(а):
ваша прошивка у меня вообще дисплей не обновляет :)
я думаю, проблема в том, что во-первых, после инициализации дисплея надо сделать паузу (по-моему, процесс инициализации длится довольно долго - сотни миллисекунд), в течение которой не обращаться к дисплею, а, во-вторых, в главном цикле обновлять информацию на дисплее пореже. посудите сами: вывод на дисплей и опрос часов происходят за сотые доли секунды, т.е. вы каждые несколько сотых долей очищаете дисплей и выводите, очищаете и выводите... думаю, в этом и причина. судя по схеме, вы завели на отдельный вход секундный сигнал с часов - вот и опрашивайте этот порт - как только уровень сменился - вот тогда вычитывайте время и выводите его на дисплей. и будет вам счастье :)


Добрый день! Всё переделал. Пришлось отказаться от секундных импульсов и опроса порта. Без них проще. Переменные беру сразу из функции. Только вот какое дело... Так то всё работает, но индикатор часто мигает, неприятно глазам. Думаю это от частого вызова ф-ции lcd_clear(). Но вот такой глюк, я не знаю откуда: При изменении тактовой частоты МК, изменяется скорость счёта секунд. ИМХО секунды зависят от DS1307 и от кварца, при чём здесь тактовая в МК??? :shock:


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пн дек 08, 2008 20:03:03 
Модератор
Аватар пользователя

Карма: 27
Рейтинг сообщений: 58
Зарегистрирован: Пн апр 03, 2006 11:43:25
Сообщений: 4517
Откуда: Санкт - Петербург
Рейтинг сообщения: 0
Медали: 3
Получил миской по аватаре (1) Мявтор 2-й степени (1) Мявтор 3-й степени (1)
Так не надо лишний раз lcd_clear() вызывать. Выводит е данные только если они изменились, причем выводить можно "поверх" старых, строка просто перепишется на новую. Если все строки одинаковой длинны - вообще никаких проблем, если в строках есть изменяющаяся по длинне часть (ну там переменную какую выводим, например) просто добавляем в конце короткой строки несколько пробелов, чтобы при выводе они "затерли" последние символы предыдущей длинной строки.
По поводу счета секунд, мне думается, что такой эффект возникает из-за смены частоты обновления LCD, реже обновляется => кажется, что медленнее считает. Или реже вычитываете данные из DS'ки, опять же.

_________________
Оптимизм х (Опыт + Знания) = const


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Ср дек 10, 2008 15:33:31 
Прорезались зубы

Карма: -6
Рейтинг сообщений: 16
Зарегистрирован: Пн дек 01, 2008 14:19:31
Сообщений: 235
Откуда: Киргизия.
Рейтинг сообщения: 0
У меня вопрос. Есть в наличии древний комп. Характеристики- Пентиум 1, операционка Win 98, Объём жёсткого диска 1 Ггб, свободное пространство 300 мб,память 32 мб. Этих параметров хватит для работы Code Vision AVR?И где можно взять полную версию?


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Ср дек 10, 2008 19:12:23 
Модератор
Аватар пользователя

Карма: 27
Рейтинг сообщений: 58
Зарегистрирован: Пн апр 03, 2006 11:43:25
Сообщений: 4517
Откуда: Санкт - Петербург
Рейтинг сообщения: 0
Медали: 3
Получил миской по аватаре (1) Мявтор 2-й степени (1) Мявтор 3-й степени (1)
Должно хватить. Полной бесплатной версии нет, можно лишь доработать пробную. Инструменты для этого есть в Сети, найти не проблема поисковиком.

_________________
Оптимизм х (Опыт + Знания) = const


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Переести строку битов в символ-байт в CodeVisionAVR
СообщениеДобавлено: Вс дек 14, 2008 15:31:22 
Мучитель микросхем

Зарегистрирован: Вс июн 01, 2008 12:16:38
Сообщений: 459
Рейтинг сообщения: 0
Aster писал(а):
Добрый день( вечер), уважаемые электронщики. Меня беспокоит один момент с программированием в среде CodeVisionAVR. Хотел бы спросить как перевести биты в байты, но немного в другой тематики… то есть я имею в символьном виде значения битов, ну например строку “00000111” и мне ее необходимо перевести именно в значение байта- символа, которому соответствуют биты данной строки (таблица ASCII). Будьте любезны подскажите с кодом или алгоритмом, в какую сторону копать.

Вот набросал функцию, подозреваю что не оптимальная, т. к. только начал изучать C, на АСМе решается наверное даже проще и быстрее.
Код написан на GCC, проверен на ПК, компилится без ошибок на AVR-GCC на железе АВР не тестировался, если есть ошибки то пусть форумчане меня поправят
Код:
/* функция преобразования строки вида 01010101\0 в код символа
 * через указатели наверное можно сделать оптимальнее, но
 * я сомневаюсь в своих силах и не знаю КОДЕ ВИЗИОН
 * Внимание !! в функции не проводится проверка на наличие
 * ошибочных симоволов в строке, наличие символов, отличных от
 * 1 или 0 приведет к непредсказуемым результатам */

 
unsigned char bintos(unsigned char str[])   
#define MNUMB 8                           /* максимальное ко-во символов
в преобразуемой строке в данном случае поскольку типы переменных char значение
константы больше 8 приведет к непредсказуемым результатам */

{
   unsigned char i, s;                  
   s=0;
   
   for (i=0; i<MNUMB ; ++i)   // для каждого элемента строки,  делаем
   {   
      s<<=1;               // сдвигаем на 1 влево результат преобразования
      s|=~(~0<<1)&(str[i]-'0');   // логическое или младшего бита числа соответствующего символу
                        // с результатом 
   }      
   return s;
}
 
/* в общем ф-я работает так:
 * 1 s=0;
 * 2.2 Сдвигаем s на 1 бит влево
 * 2.3 Вычисляем число, соответсвующее str[i] (str[i]-'0')
 * 2.4 Накладываем на это число маску, выделяющую только младший бит
 * 2.5 Делаем лог. ИЛИ с получившимся числом
 * 3 Повторяем пункт 2 8 раз
 * В результате в s получается код символа, соответствующий строке из 1 и 0
 *
 * П. С. Для кодировки ASCII, где 0 имеет код 0x30, а 1 -  0x31 будет работать даже
 * если строку s|=~(~0<<1)&(str[i]-'0'); заменить на строку s|=~(~0<<1)&str[i];
 */



Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вс дек 14, 2008 15:48:13 
Друг Кота

Карма: 13
Рейтинг сообщений: 84
Зарегистрирован: Чт сен 20, 2007 14:08:00
Сообщений: 13796
Рейтинг сообщения: 0
функция itoa()
пишеш типа
char ascii;
ascii = itoa(0b00000111);
хедер вроде stdio.h или смотри справку по компилятору


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вс дек 14, 2008 18:50:09 
Потрогал лапой паяльник

Зарегистрирован: Пт фев 08, 2008 13:46:03
Сообщений: 327
Откуда: Воронеж
Рейтинг сообщения: 0
kalobyte писал(а):
функция itoa()
пишеш типа
char ascii;
ascii = itoa(0b00000111);


Хмм... Вообще-то в стандартной библиотеке Си параметры этой функции представляются несколько иначе. Она содержит три параметра:
1 - значение типа int
2 - ссылка на принимающий буфер
3 - значение используемое в алгоритме расчёта (обычно - 10)


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Чт дек 18, 2008 09:29:34 
Родился

Зарегистрирован: Чт дек 18, 2008 09:19:19
Сообщений: 1
Рейтинг сообщения: 0
Доброго времени суток,

Просьба подсказать по возможности:

// описание пунктов меню 1
flash char* flash MenuItem01 [] =
{
"Menu01",
"Free Menu",
"Exit"
};

// описание пунктов меню 2
flash char* flash MenuItem02 [] =
{
"Menu02",
"Exit"
};

// вывод текста
void TextOut (char x, char y, char flash *pStr)
{
char S;
// код символа
S = *pStr ++;
...
}

// передать для печати 2 строку Menu01
TextOut (12, 12, MenuItem01 [1]);

// передать для печати 1 строку Menu02
TextOut (12, 12, MenuItem02 [0]);

Есть желание (вернее необходимость) передавать в функцию TextOut, не посредственно массив указателей на строки,
а указатель (если так корректно сказать) на массив указателей на строки.

для примера, образно:

pMenuItem = MenuItem01;

TextOut (12, 12, pMenuItem [1]);

pMenuItem = MenuItem02;

TextOut (12, 12, pMenuItem [0]);

На данный момент затруднение, в обьявлении такого указателя (pMenuItem)

Спасибо.


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

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


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

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


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

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


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