CodeVision AVR в вопросах и ответах

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение ARV »

Apparatchik писал(а):Или писать всё в одну строку если уж так нужно каждый бит отдельно

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

PORTA.3=0; PORTC.4=0; PORTC.5=0;...
о, мсье знает толк в извращениях! :)))
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
radio-kot
Собутыльник Кота
Сообщения: 2584
Зарегистрирован: Вт сен 14, 2010 10:27:19

Re: CodeVision AVR в вопросах и ответах

Сообщение radio-kot »

если вы ОКОНЧАТЕЛЬНО перешли на французский то называйте меня ситуаен ! что значит гражданин.
Будете проходить мимо- проходите!
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение ARV »

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

Мой уютный бложик... заходите!
Аватара пользователя
Jack_A
Друг Кота
Сообщения: 6307
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Re: CodeVision AVR в вопросах и ответах

Сообщение Jack_A »

ARV писал(а):гражданином прокурор назовет :)))


Зря Вы его так... Ув. Семенов М. обнаруживает хорошее знание классики ( "12 стульев" ), за что ему респект и пожелание так развить свой бузинес, чтоб смог открыть представительство в Минске, где я мог бы за вменяемую сумму зайчиков купить что-нить железное. Впрочем, скоро мы все будем в одном большом государстве, так что вопрос отпадет сам собой . Сорри, оффтоп, умолкаю.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение ARV »

Jack_A писал(а):Зря Вы его так... Ув. Семенов М. обнаруживает хорошее знание классики ( "12 стульев" )
человек, знающий хорошо упомянутую классику, явно обладает отличным чувством юмора и, я уверен на 100%, совсем не обиделся на мою шутку :)
классику и я неплохо знаю, и с ув. Семеновым М. не раз на форуме "пикрировались" цитатами к обоюдному удовольствию.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
radio-kot
Собутыльник Кота
Сообщения: 2584
Зарегистрирован: Вт сен 14, 2010 10:27:19

Re: CodeVision AVR в вопросах и ответах

Сообщение radio-kot »

:beer: "Золотой теленок" - http://az.lib.ru/i/ilfpetrov/text_0140.shtml

- Честное слово, мосье Бендер!..

- Слушайте, Шура, если уж вы окончательно перешли на французский язык, то называйте меня не месье, а ситуайен, что значит - гражданин. Кстати, адрес вашего миллионера?

- Он живет в Черноморске.

- Ну, конечно, так и знал! Черноморск! Там даже в довоенное время человек с десятью тысячами назывался миллионером. А теперь... могу себе представить!
Будете проходить мимо- проходите!
Warn
Родился
Сообщения: 16
Зарегистрирован: Ср мар 16, 2011 19:41:29

Re: CodeVision AVR в вопросах и ответах

Сообщение Warn »

ARV, я не зря поставил вопрос, как мне записать это всё именно в 4 строчки,
Заметье, 4ре а не 6 или 8. :)

тоесть я прекрасно понимаю что каждый порт это 8бит, и в него если записать 11110000 это будет
PORTD.0=1;
PORTD.1=1;
PORTD.2=1;
PORTD.3=1;
PORTD.4=0;
PORTD.5=0;
PORTD.6=0;
PORTD.7=0;

Вопрос остаётся прежним, как? читать информацию из 8бит порта по такому-то адресу, в оперативку, там очищать значение, и записывать новое значение, и после писать обратно в 8бит порта?

я понимаю, на форуме сидят мего умные люди, для которых всё просто.
или например иди читай самоучитель и так далее. Написать 2 строчки кода и сказать человеку, как это делать я думаю не сложнее, чем совет, писать всё в одну строчку.
С уважением к вам всем!
Аватара пользователя
radio-kot
Собутыльник Кота
Сообщения: 2584
Зарегистрирован: Вт сен 14, 2010 10:27:19

Re: CodeVision AVR в вопросах и ответах

Сообщение radio-kot »

Warn писал(а): например иди читай самоучитель и так далее. Написать 2 строчки кода и сказать человеку, как это делать я думаю не сложнее,


А че не почитать то ? Например:

http://www.proavr.narod.ru/05.htm "чуток Си для микроконтроллеров"

этож не последняя ваша прога неверно. пригодится.

А написать вам так:

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

PORTA = 0b00110101; // единички и нули нужные вам

и остальные порты аналогично

Если надо обнулять биты не меняя другие биты порта ( регистра, переменной), то

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

PORTA &= ~( (1<<3) | (1<<6) ); // обнулить биты 3 и 6 в PORTA не меняя других бит.


Если надо делать единичками - "Устанавливать" - биты не меняя другие биты порта, то

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

PORTA |=  (1<<3) | (1<<6) ; // сделать "1"  биты 3 и 6 в PORTA не меняя других бит.
Будете проходить мимо- проходите!
Warn
Родился
Сообщения: 16
Зарегистрирован: Ср мар 16, 2011 19:41:29

Re: CodeVision AVR в вопросах и ответах

Сообщение Warn »

Человеческое спасибо, читал Лебедева, 237 страница, но там не написано таких простых вещей.
Спасибо! пишу программу дальше, использую оператор выбора, CVavr неплохо понимает тип данных char.
моя программа будет выводить текст на самодельную светодиодную матрицу, общение хочу сделать по txt, rxt. Но это пожже.
Спасибо!
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение ARV »

я так и не понял, в чем сакральный смысл ИМЕННО ЧЕТЫРЕХ СТРОЧЕК? одной строкой не устраивало? или двумя?
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
Apparatchik
Держит паяльник хвостом
Сообщения: 908
Зарегистрирован: Вс май 23, 2010 13:55:42
Откуда: Украина, Александрия

Re: CodeVision AVR в вопросах и ответах

Сообщение Apparatchik »

Вот тут ув. ARV разясняет по поводу битов. Вот тоже маленький курс
«И всё-таки она вертится!»
Аватара пользователя
radio-kot
Собутыльник Кота
Сообщения: 2584
Зарегистрирован: Вт сен 14, 2010 10:27:19

Re: CodeVision AVR в вопросах и ответах

Сообщение radio-kot »

Warn писал(а): общение хочу сделать по txt, rxt
задача упражнение 5 краткого курса по AVR программирование UART USART обмен данными - www.proavr.narod.ru/z5.htm

Warn писал(а):Спасибо!
ёу :beer:
Будете проходить мимо- проходите!
Аватара пользователя
radio-kot
Собутыльник Кота
Сообщения: 2584
Зарегистрирован: Вт сен 14, 2010 10:27:19

Re: CodeVision AVR в вопросах и ответах

Сообщение radio-kot »

Курсов масса, книг море - когдаж читатели подтянутся ????????????? :shock:
Будете проходить мимо- проходите!
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение ARV »

radio-kot писал(а):Курсов масса, книг море - когдаж читатели подтянутся ????????????? :shock:

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

Мой уютный бложик... заходите!
Аватара пользователя
radio-kot
Собутыльник Кота
Сообщения: 2584
Зарегистрирован: Вт сен 14, 2010 10:27:19

Re: CodeVision AVR в вопросах и ответах

Сообщение radio-kot »

ARV писал(а): в чем сакральный смысл ИМЕННО ЧЕТЫРЕХ СТРОЧЕК?
Знак четырех однако.
Будете проходить мимо- проходите!
Аватара пользователя
igor-x
Мудрый кот
Сообщения: 1817
Зарегистрирован: Пн ноя 29, 2010 15:58:43

Re:

Сообщение igor-x »

[quote="ARV"]

typedef struct{
char flag; // признак "активности"
char cmd[]; // строка-команда
}t_search
и потом создаете массив таких структур с заданием каждому элементу массива flag=1 и cmd = "вашей строке".
Код:
t_search array[3] = {
{1,"RE"}, {1,"RU"}, {1,"ST"} // для команд RESET, RUN и STOP хватит анализа первых 2 символов
};


затем начинаете ждать символ. когда пришел символ - вы его сравниваете с первым символом команд во всем массиве, и устанавливаете flag=1 для тех элементов, в которых символы совпали.
Код:
array[i].flag = array[i].str[1] == ch;

/quote]

подскажите пож. в данном примере не опечатка? - в определении структуры char cmd[]; , а обращение идет к .str[1]

Спрашиваю не с целью выявить ошибки автора, а чтобы понять почему у меня не работает программа.
Сейчас пытаюсь повторить этот алгоритм, но не работает, т.к. при обращении к образцовому массиву команд, у меня почему то идет непонятный перебор данных.. например =
CNT_IN_SYMB=0;
ShowSYMBARR =CMD_ARRAY[i].cmd[CNT_IN_SYMB];
при значении i =0 , в ShowSYMBARR виден как и ожидается первый символ первой строки образцового массива
а при i=1 я ожидаю увидетьпервый символ второй строки массива, а почему то появляется следующий+1 из первой строки.

--
помогите пож. понять в чем ошибка.
массивы определены так
typedef struct
{
char flag; // счетчик совпадений
char flag_max; // max символов для сравнения
char cmd[]; // строка-команда {1,0x0d,0x0d,'О','К',0x0d}
}t_search;

static t_search CMD_ARRAY[5] =
{
{0,2,"OK\0\0\0"}, {0,5,"+CMTI"}, {0,5,"+CMGR"}, {0,5,"+CMGL"}, {0,5,"+CUSD"}
};
Последний раз редактировалось igor-x Вс апр 10, 2011 13:54:57, всего редактировалось 1 раз.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение ARV »

ну ясен пень, str написано в запарке, cmd там быть должно. и надо в структуре указать cmd[3], чтобы зарезервировать место под строку.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
igor-x
Мудрый кот
Сообщения: 1817
Зарегистрирован: Пн ноя 29, 2010 15:58:43

Re: CodeVision AVR в вопросах и ответах

Сообщение igor-x »

ARV писал(а):ну ясен пень, str написано в запарке, cmd там быть должно. и надо в структуре указать cmd[3], чтобы зарезервировать место под строку.


ага. спасибо. - я то забыл задать размер строки в массиве.......
Аватара пользователя
O-LED
Мудрый кот
Сообщения: 1800
Зарегистрирован: Вт окт 05, 2010 01:08:57
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение O-LED »

Подскажи, это глюк компилятора, глюк языка Си, или так и должно быть.
Есть у меня 2 массива, допустим mass1 и mass2 на 5 элементов каждый. они объявлены друг за другом

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

unsigned char mass1 [5] = {0,1,2,3,4},
              mass2 [5] = {5,6,7,8,9}:
Так вот, если в программе ошибочно обратиться к шестому элементу массива mass1, то он "без зазрения совести" принимает значение первого элемента массива mass2. Очень трудно уловимый глюк был..... Подскажите, есть ли способ как то обезопасить себя от таких случаев в будущем??

ps. Один из способов - писать программы без ошибок - знаю, :)) еще есть варианты :)
KIT
Аватара пользователя
ChipKiller
Сверлит текстолит когтями
Сообщения: 1163
Зарегистрирован: Ср янв 05, 2011 16:25:15

Re: CodeVision AVR в вопросах и ответах

Сообщение ChipKiller »

O-LED писал(а): ..это глюк компилятора, глюк языка Си, или так и должно быть.
... так и должно быть - за выходом за границы массива следит сам программист.
O-LED писал(а):Подскажите, есть ли способ как то обезопасить себя от таких случаев в будущем??
... можно поступить, как, например, в Паскале - 1-ый элемент хранит размер массива
Ответить

Вернуться в «AVR»