CodeVision AVR в вопросах и ответах
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18546
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
если вам интересно мое мнение, то не так вы делаете только одно - используете Code Vision.
в остальном - если до завтрашнего вечера не решите проблему - тряхну стариной, попробую ваш проект по-своему сделать.
а тини13 может не так уж и мало, если любя ее программировать.
я делал на ней лампу настроения с ИК-дистанционным управлением, диммер тоже с дистанционным управлением... так что нормально.
в остальном - если до завтрашнего вечера не решите проблему - тряхну стариной, попробую ваш проект по-своему сделать.
а тини13 может не так уж и мало, если любя ее программировать.
я делал на ней лампу настроения с ИК-дистанционным управлением, диммер тоже с дистанционным управлением... так что нормально.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Реклама
Re: CodeVision AVR в вопросах и ответах
Это вам так только кажется. Это у вас кода три строчки и кажется что всё просто. А за каждой строчкой увы не один десяток байт. Флоат и библиотеки и отнимают у вас практически всю память.Cheburator писал(а):Ибо если этот МК не может справится с такой, на мой взгляд, элементарной задачей, то не понятно, что он вообще может.
- Cheburator
- Грызет канифоль
- Сообщения: 264
- Зарегистрирован: Пт дек 07, 2012 22:50:01
- Откуда: Moscow
Re: CodeVision AVR в вопросах и ответах
Конечно, интересно. Поэтому я и задаю свои вопросы именно здесь. И очень благодарен за ответы.ARV писал(а):если вам интересно мое мнение
На счет CodeVision - возможно, Вы правы. Я уже много слышал негатива об нем. Вот только ничего конкретного никто не говорит. Я не спорю, но что в нем все-таки не так, не понимаю. Странные и непонятные конструкции, который он создает, я заменяю на вполне для меня читаемые.
Посоветуйте что-нибудь лучше.
Ну, а я буду дальше пробовать решать проблему. Если не получится - буду рад помощи.
Спасибо за предложение!
Это я понимаю. Но что-то же может этот МК делать? Наверняка может, отвечаю я сам себе. А это значит, что это я что-то не так делаю. В этом-то и хочу разобраться.scorpi_0n писал(а):А за каждой строчкой увы не один десяток байт. Флоат и библиотеки и отнимают у вас практически всю память.
А что подумал Кролик, никто не узнал, потому что он был очень воспитанный.
-
fatall_error
- Первый раз сказал Мяу!
- Сообщения: 22
- Зарегистрирован: Ср сен 01, 2010 07:24:48
Re: CodeVision AVR в вопросах и ответах
шутка на ночь
#include <tiny13a.h>
#include <1wire.h>
#include <ds18b20.h>
void main(void)
{
int temper=0;
DDRB=0b000100;
PORTB=0b000000;
w1_init();
ds18b20_init(0,10,90,DS18B20_12BIT_RES);
while (1)
{
// temper=ds18b20_temperature(0);
if (temper > 40) {PORTB=0b000100;
};
if (temper < 35) {PORTB=0b000000;
};
}
}
Вот так 58% памяти занимает
#include <tiny13a.h>
#include <1wire.h>
#include <ds18b20.h>
void main(void)
{
int temper=0;
DDRB=0b000100;
PORTB=0b000000;
w1_init();
ds18b20_init(0,10,90,DS18B20_12BIT_RES);
while (1)
{
// temper=ds18b20_temperature(0);
if (temper > 40) {PORTB=0b000100;
};
if (temper < 35) {PORTB=0b000000;
};
}
}
Вот так 58% памяти занимает
- Cheburator
- Грызет канифоль
- Сообщения: 264
- Зарегистрирован: Пт дек 07, 2012 22:50:01
- Откуда: Moscow
Re: CodeVision AVR в вопросах и ответах
Шутку оценил!
На выходе всегда "0" будет...
Но за то в МК влезет!
На выходе всегда "0" будет...
Но за то в МК влезет!
А что подумал Кролик, никто не узнал, потому что он был очень воспитанный.
- Реклама
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
Вам же уже посоветовали - не использовать библиотеку, которая работает с double внутри себя.Cheburator писал(а):Посоветуйте что-нибудь лучше.
P.S. Стало интересно, влезет ли в 1кБ с нормальной библиотекой. Не поленился, потратил полчаса - результат в архиве. Здесь упрощённый вариант моей самописной библиотеки (без поддержки нескольких датчиков), который помещается в 360 байт кода. При этом есть проверка контрольной суммы, т.е. ошибки чтения не приведут к ложным срабатываниям.
Если делать полноценный вариант (с поиском всех датчиков на шине, автоопределением DS18S20/DS18B20) - получится около 800 байт кода, но не думаю, что в данном применении это нужно.
Код, естественно, под avr-gcc.
- Вложения
-
- t13temp.7z
- (14.29 КБ) 188 скачиваний
Re: CodeVision AVR в вопросах и ответах
Я где то год назад сделал зарядку для LiON на Tiny13A.Cheburator писал(а):...
Аппарат имел 7ми сегментный дисплей подключенный через регистр 595.
Кнопку.
И измерял Напряжение, Ток и считал Ампер часы которые вошли в аккумулятор.
Также когда аккумулятор был заряжен отключал микруху LM2596S.
Но моя ошибка состояла в том что я собрал девайс, а потом решил писать программу.
Первая версия программы вместилась в 1кб. Но когда стал ее улучшать выходил за размеры.
Вот и пришлось долго работать над оптимизацией программы и сильно сожалел что собрал на тиньке 13А, но уже было поздно.
Таким образом потерял много времени пока уместил все нужное. Размер программы ровно 1024 байта.
И все написано в CodevisionAVR.
Так что все уже зависит от вашего рвения закончить проект.
Также могу сказать что самое объемное в программе это управление 7-ми сегментным и расчет емкости.
Поскольку все это привязано к времени, а у тиньки всего лишь один таймер пришлось думать как оптимизировать код.
На атмеге 8 этот код занимал бы меньше места. Тем более у нее в 8 раз больше памяти. А если еще не пользоваться регистром 595 то еще экономнее было бы.
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
Ну, насчёт больших требований к управлению семисегментником - это не так. Один из моих первых проектов на AVR - вольтметр (для авто), компилируется всего в 378 байт кода (можно и оптимальнее сделать). На расчёт амперчасов оставшихся двух третей flash-памяти явно было бы достаточно.
Re: CodeVision AVR в вопросах и ответах
Кто его знает? На каком МК делали? На тиньке13-ой? Использовали Регистр 595?WiseLord писал(а):Ну, насчёт больших требований к управлению семисегментником - это не так. Один из моих первых проектов на AVR - вольтметр (для авто), компилируется всего в 378 байт кода (можно и оптимальнее сделать).
-
Pnjom-Penb
- Мучитель микросхем
- Сообщения: 469
- Зарегистрирован: Вс авг 30, 2015 03:52:59
Re: CodeVision AVR в вопросах и ответах
Попробуйте printf с float'ом подключить - шутка утроится.fatall_error писал(а):шутка на ночь ... Вот так 58% памяти занимает
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18546
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
ну, вот и решилось все: мне не придется пробовать по-своемуWiseLord писал(а):Стало интересно, влезет ли в 1кБ с нормальной библиотекой. Не поленился, потратил полчаса - результат в архиве. Здесь упрощённый вариант моей самописной библиотеки (без поддержки нескольких датчиков), который помещается в 360 байт кода. При этом есть проверка контрольной суммы, т.е. ошибки чтения не приведут к ложным срабатываниям.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Cheburator
- Грызет канифоль
- Сообщения: 264
- Зарегистрирован: Пт дек 07, 2012 22:50:01
- Откуда: Moscow
Re: CodeVision AVR в вопросах и ответах
WiseLord, большое спасибо!
Сейчас посмотрю. Постараюсь разобраться!
А так же спасибо всем, кто принял участие в моей проблеме!
========
Прошивка - да, работает, все отлично!
Разбираюсь в исходниках. Вернее, пытаюсь разобраться. Пока не очень получается.
========
Разобрался!
Еще раз - огромное СПАСИБО всем, кто помогал! WiseLord - отдельная благодарность!

Сейчас посмотрю. Постараюсь разобраться!
А так же спасибо всем, кто принял участие в моей проблеме!
========
Прошивка - да, работает, все отлично!
Разбираюсь в исходниках. Вернее, пытаюсь разобраться. Пока не очень получается.
========
Разобрался!
Еще раз - огромное СПАСИБО всем, кто помогал! WiseLord - отдельная благодарность!
А что подумал Кролик, никто не узнал, потому что он был очень воспитанный.
Re: CodeVision AVR в вопросах и ответах
Здравствуйте!
Подскажите, как сделать чтоб информация на LCD обновлялась когда я бы установил, т.е. вот стандартный код АЦП
выводит информацию на LCD, но сигнал поступает импульсами в среднем раз в минуту, я хочу сделать, чтоб информация горела на LCD, и обновлялась после следующего сигнала. Подскажите как правильно сделать?
Подскажите, как сделать чтоб информация на LCD обновлялась когда я бы установил, т.е. вот стандартный код АЦП
Код: Выделить всё
#include <mega8.h>
#asm
.equ __lcd_port=0x18 ;PORTB
#endasm
#include <lcd.h>
#include <delay.h>
#include <stdio.h>
char string[10];
void main(void)
{
int data;
float V;
ACSR=0x80;
SFIOR=0x00;
ADMUX=0;
ADCSR=0x85;
// LCD module initialization
lcd_init(16);
lcd_putsf("Work with ADC");
while (1)
{ delay_ms(20);
ADCSR |= 0x40;
data = ADCW;
V = (float) data*0.0048828;
sprintf(string, "Data: %1.2f", V);
lcd_gotoxy(0,1);
lcd_puts(string);
};
}- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
Порой люди сами не понимают что спрашивают...
Что значит "когда бы я установил" ? Это как ? Устанавливайте сами любой интервал времени обновления, в чём проблема ?
Что за "сигнал" приходит, после которого нужно обновление экрана ? Зачем вообще обновление синхронизировать с каким то там внешним сигналом ?
Собственно, вопрос из оперы "мысли вслух" - пишу то, о чём думаю...
Что значит "когда бы я установил" ? Это как ? Устанавливайте сами любой интервал времени обновления, в чём проблема ?
Что за "сигнал" приходит, после которого нужно обновление экрана ? Зачем вообще обновление синхронизировать с каким то там внешним сигналом ?
Собственно, вопрос из оперы "мысли вслух" - пишу то, о чём думаю...
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
Извините меня за прямоту, но Вы, видимо, сами не понимаете что Вам нужно сделать. Отсюда и непонимание как это сделать, и отсутствие возможности объяснить, что Вам нужно.
Ещё раз задам вопрос. Попытайтесь на него ответь, пусть не мне, но хотя-бы себе. Для чего нужно синхронизировать обновление экрана с каким-то там таинственным сигналом ? В чём таинственный смысл сих действий ? Измерение и вывод - совершенно две разные задачи, разделите их друг от друга.
Ещё раз задам вопрос. Попытайтесь на него ответь, пусть не мне, но хотя-бы себе. Для чего нужно синхронизировать обновление экрана с каким-то там таинственным сигналом ? В чём таинственный смысл сих действий ? Измерение и вывод - совершенно две разные задачи, разделите их друг от друга.
Re: CodeVision AVR в вопросах и ответах
Ну допустим сделаем так:Аlex писал(а):Измерение и вывод - совершенно две разные задачи, разделите их друг от друга.
ждем сигнал, замеряем, максимальное значение выводим на экран, ждем следующий сигнал, замеряем, обновляем значение
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
Т.е. сейчас на экране что-то вроде 0-0-0-2.8-2.8-0-0-0-0-0-0-2.5-2.5-0-0-0-0? А нужно выводить только пиковые значения?
Если так, то делайте как написали выше - измеряйте напряжение не постоянно в цикле (нулевые уровни в том числе), а только когда приходит пик.
Если так, то делайте как написали выше - измеряйте напряжение не постоянно в цикле (нулевые уровни в том числе), а только когда приходит пик.
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
Опять слышится эта таинственная фразаkk042fjv писал(а):ждем сигнал
И причём тут АЦП ? АЦП не умеет ничего "ждать", оно просто преобразует напряжение в цифровое значение. И делает это в тот момент, который задаст программист.
Re: CodeVision AVR в вопросах и ответах
[quote="Аlex"][/quote]
как то так что ли
Код: Выделить всё
if (V > 1){
значение выводим на экран
}

