Страница 275 из 421
Re: CodeVision AVR в вопросах и ответах
Добавлено: Пт сен 06, 2013 14:17:17
0867532
Лал, я не знал что это были массивы, точнее не задумывался что это они...
Re: CodeVision AVR в вопросах и ответах
Добавлено: Пт сен 06, 2013 21:47:49
vitalik_1984
Доктор доктор мне нужно зуб вырвать, - мне вас посоветовали.
-Хм так это во рту зубы оказывается? Никогда бы не подумал.

Re: CodeVision AVR в вопросах и ответах
Добавлено: Сб сен 07, 2013 00:31:01
0867532
Коты, помогите?!
программа считывает char, а как мне из него по одному читать, делать с ним экшон, и так пока чар не кончится?
Например:
...
void Print(unsigned char BOSS) {
понятно что здесь надо ставить while(???){экшон;} но как компактно подсчитать не создав кучу переменных?
}
...
Print(BULKA);
Не хочется на самодельный экранчик выводить буквы по одной:)
Да, ещё... Почему не работает?
...
unsigned char AK[] = {
0b10111111,
...
};
...
if (PINB == AK[0] ) { ... } (PORTB=0xFF; DDRB=0x00; Если без массива ну там PD.0 == 1 && PD.1 ==0... То норм.)
Re: CodeVision AVR в вопросах и ответах
Добавлено: Сб сен 07, 2013 01:50:34
a_skr
я купил апельсин, а как мне по одному из него брать, делать с ним

, и так, пока апельсин не кончится?
автор, пиши по-русски, пожалуйста!
извините, не удержался...
если((апельсин & (долька №1))==съели) кричать("ААА!");
Re: CodeVision AVR в вопросах и ответах
Добавлено: Сб сен 07, 2013 05:34:50
pyzhman
0867532 писал(а):
...
if (PINB == AK[0] ) { ... } (PORTB=
Если написать так:
0867532 писал(а):
...
if (PINB == AK[0] ) { ... }; // (PORTB=
, то работать будет.
Re: CodeVision AVR в вопросах и ответах
Добавлено: Сб сен 07, 2013 08:29:46
0867532
Я это для сообщения вставил, Понятно что во1: меня редактор бы послал куда-подальше.
Во2: на я не совсем тупой, чтоб с ошибками код заливать в МК.
Re: CodeVision AVR в вопросах и ответах
Добавлено: Вс сен 08, 2013 14:17:25
Сериг
0867532 писал(а):Я так делаю:
Работает всегда правильно.
Коды чаров генерировал в этой проге:
http://rghost.ru/private/48590263/81d57 ... 58c21e9a72
Код: Выделить всё
typedef unsigned char byte;
flash byte char0[8]={0x04, 0x14, 0x1F, 0x05, 0x04, 0x0A, 0x11, 0x11};//суваем то что сгенерировалось суда
flash byte char1[8]={0x04, 0x05, 0x1F, 0x14, 0x04, 0x0A, 0x11, 0x11};
flash byte char2[8]={0x1F, 0x11, 0x11, 0x11, 0x19, 0x11, 0x11, 0x11};
flash byte char3[8]={0x1F, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x1F};
flash byte char4[8]={0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04};
flash byte char5[8]={0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00};
flash byte char6[8]={0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00};
flash byte char7[8]={0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00};
void define_char(byte flash *pc,byte char_code)
{
byte i,a;
a=(char_code<<3) | 0x40;
for (i=0; i<8; i++) lcd_write_byte(a++,*pc++);
}
void main(void) {
...
define_char(char0,0);
define_char(char1,1);
define_char(char2,2);
define_char(char3,3);
define_char(char4,4);
define_char(char5,5);
define_char(char6,6);
define_char(char7,7);
...
lcd_putchar(0);
lcd_putchar(1);
lcd_putchar(2);//Выводим сгенерированые чары на экран
lcd_putchar(3);
lcd_putchar(4);
lcd_putchar(5);
lcd_putchar(6);
lcd_putchar(7);
...
}
Тук-тук-тук!

Снова я с очередным вопросом:
Подскажите,что делать?!
Символы выводятся идеально правильно,только после перезагрузки мк путем сажания ресета на массу.
А при перезагрузке путем сброса питания,происходит такая фигня.
Спасибо!
Re: CodeVision AVR в вопросах и ответах
Добавлено: Вс сен 08, 2013 14:33:30
Аlex
Что-то Ваш дисплей не совсем похож на
Сериг писал(а):дисплей на контроллере HD44780
ЗЫ: Цепь ресета как сделана ? Мож в ей проблемы...

Re: CodeVision AVR в вопросах и ответах
Добавлено: Вс сен 08, 2013 14:38:12
Garin
Сериг а вы не вместе с 0867532?
Код тот для примера , а вы в нем ничего не делали?
Выложите свой. Или продолжайте на пальцах спрашивать..
Re: CodeVision AVR в вопросах и ответах
Добавлено: Вс сен 08, 2013 14:58:06
0867532
Сериг, а что у вас за LCD, как называется?
Re: CodeVision AVR в вопросах и ответах
Добавлено: Вс сен 08, 2013 23:50:10
Сериг
Аlex писал(а):Что-то Ваш дисплей не совсем похож на
Сериг писал(а):дисплей на контроллере HD44780
ЗЫ: Цепь ресета как сделана ? Мож в ей проблемы...

Все по фен-шую...
Конденсатор 0,1 на землю, 10к к плюсу...
Дисплей wh2004d
Re: CodeVision AVR в вопросах и ответах
Добавлено: Пн сен 09, 2013 07:09:30
Аlex
Попробуйте посадить ресет на землю, подать питание на девайс, затем отпустить ресет. Возможно, у Вас проблема связана не с внешним сбросом, а с первым пуском МК.
Re: CodeVision AVR в вопросах и ответах
Добавлено: Пн сен 09, 2013 07:37:37
pyzhman
Из даташита:
Wait for more than 15 ms after VCC rises to 4.5 V
Оно, конечно, в библиотеке это делается. Но тем не менее перед инициализацией дисплея в самом начале программы поставьте
Re: CodeVision AVR в вопросах и ответах
Добавлено: Пн сен 09, 2013 09:29:14
Сериг
Аlex писал(а):Попробуйте посадить ресет на землю, подать питание на девайс, затем отпустить ресет. Возможно, у Вас проблема связана не с внешним сбросом, а с первым пуском МК.
Ок,спасибо,попробую. А что в таком случае делать?
Pyzhman стоит задержка 1000мс.
Re: CodeVision AVR в вопросах и ответах
Добавлено: Ср сен 18, 2013 08:46:26
Aмstroн
Теоретический вопрос, чем отличаются две переменные друг от друга , которые вот так обьявлены
Код: Выделить всё
#define odin 44 //
unsigned char dva=44; //
Re: CodeVision AVR в вопросах и ответах
Добавлено: Ср сен 18, 2013 08:54:31
ibiza11
odin - это не переменная, а константа, она не занимает оперативной памяти микроконтроллера.
dva - это переменная, под которую выделяется место в ОЗУ.
Re: CodeVision AVR в вопросах и ответах
Добавлено: Ср сен 18, 2013 08:59:58
pyzhman
odin это даже и не константа

Хотя место, конечно, может занять во флеше. Да и в ОЗУ тоже может занять.
Re: CodeVision AVR в вопросах и ответах
Добавлено: Ср сен 18, 2013 09:53:18
Aмstroн
Понимаю что это примитив , но сомнения и порождают у меня этот вопрос.
По месту нахождения ясно , а как тогда это может сказаться на арифметических действиях
Код: Выделить всё
#define odin 44 //
unsigned int dva=44; //
int summa=0;
// вариант №1
summa= (100+ (odin*dva))/odin;
// вариант №2
summa= (100+ (odin/dva))*dva;
// вариант №3
summa= (100+ (odin/dva))+odin;
Вот тут не понял, в чем будут ограничены действия
Re: CodeVision AVR в вопросах и ответах
Добавлено: Ср сен 18, 2013 10:10:46
FreshMan
ibiza11 писал(а):dva - это переменная, под которую выделяется место в ОЗУ.
интерестно, а почему для нее не используется один из РОН, а выделя6ется ячейка ОЗУ ?
Re: CodeVision AVR в вопросах и ответах
Добавлено: Ср сен 18, 2013 10:14:58
Gudd-Head
FreshMan писал(а):почему для нее не используется один из РОН, а выделя6ется ячейка ОЗУ ?
Потому что РОН мало, а ОЗУ много. Чтобы выделился РОН, вроде надо написать register. Хотя не знаю как в CV.