Страница 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
:facepalm: :facepalm: :facepalm:
я купил апельсин, а как мне по одному из него брать, делать с ним :tea:, и так, пока апельсин не кончится?
автор, пиши по-русски, пожалуйста!

извините, не удержался...

если((апельсин & (долька №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
:)

ЗЫ: Цепь ресета как сделана ? Мож в ей проблемы... :roll:

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
:)

ЗЫ: Цепь ресета как сделана ? Мож в ей проблемы... :roll:
Все по фен-шую...
Конденсатор 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
Оно, конечно, в библиотеке это делается. Но тем не менее перед инициализацией дисплея в самом начале программы поставьте

Код: Выделить всё

delay_ms(500);

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.