Да.Pippeytz писал(а):... запись ...DDRC= 0b1111111
Значит , что все биты в проту С будут выходами?
CodeVision AVR в вопросах и ответах
- Реклама
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18546
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
не успел? 
Последний раз редактировалось ARV Чт июл 31, 2008 20:04:50, всего редактировалось 1 раз.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Сэр Мурр
- Модератор
- Сообщения: 11169
- Зарегистрирован: Чт окт 27, 2005 18:50:07
- Откуда: из мест не столь отдалённых
Об идеологии построения программного обеспечения- пожалуйте в тему http://www.radiokot.ru/forum/viewtopic. ... highlight=
- Negor
- Вымогатель припоя
- Сообщения: 586
- Зарегистрирован: Ср мар 07, 2007 22:58:02
- Откуда: Черкассы, Украина
- Контактная информация:
Итак ситуация следущего характера - вяжу телефон с ATMega8 по uart в proteus. В терминале телефон себя ведёт адекватно - реагирует как надо. Если терминал proteus подключить к компоненту compim - тоже всё гуд. и даже када мега отправляет команду - ответ в рам тоже правильный хранится. А вот вывести ответ на дисплей - фиг.
и всё бы хорошо но на экран ответ не выводится. Ответ на такую команду
Готовые решения не особо интересуют - мне бы узнать что Я делаю неправильно. Проэкт в CodeVision генерил мастером выставлял rx tx interrupt буфер 2 байта.
Код: Выделить всё
lcd_putsf("ATI "); //выводим команду на дисплей
putsf("ATI"); //запускаем в терминал
putchar(0x0D); //выводим код "перевод каретки"
while(rx_counter) //следуя курсу авр123 пока есть символы в буфере - выводим их.
{
buff=getchar(); //выводим если символ печатаемый
if (buff>0x1F)
{
lcd_putchar(buff);
}
}
Код: Выделить всё
144
ОК
There is only 10 kind of people: those who understands binary code and those who dont!!!
- Реклама
- RadioNefor
- Открыл глаза
- Сообщения: 56
- Зарегистрирован: Пт мар 28, 2008 00:39:54
- Откуда: Беларусь. Новополоцк.
- Контактная информация:
Помогите решить проблему, а то я что-то уже задолбался.
Есть два массива: times[6] и outs[6], т.е. в них по шесть чисел однобайтных. В массиве times некоторые числа могут совпадать, а могут и все совпадать, а могут и все разные быть. Расположены они ПО ВОЗРОСТАНИЮ. В массиве outs все числа разные, расположены хаотично. Нужно заполнить третий массив resultouts, и четвертый resulttimes вот так (например):
times: 50, 50, 120, 190, 190, 190
outs: 0b00000010, 0b00100000, 0b00000001, 0b00000100, 0b00001000, 0b00010000
resulttimes: 50, 120, 190, 0, 0, 0
resultouts: 0b00100010, 0b00000001, 0b00011100, 0b00000000, 0b00000000, 0b00000000
Т.е. если числа в times совпадают, то соответствующие им числа в outs «перемешиваются» операцией или (or) и помещаются в ячейку массива resultouts. Неиспользуемые ячейки resultouts и resulttimes нужно заполнить нулями.
Как же все это написать???
Есть два массива: times[6] и outs[6], т.е. в них по шесть чисел однобайтных. В массиве times некоторые числа могут совпадать, а могут и все совпадать, а могут и все разные быть. Расположены они ПО ВОЗРОСТАНИЮ. В массиве outs все числа разные, расположены хаотично. Нужно заполнить третий массив resultouts, и четвертый resulttimes вот так (например):
times: 50, 50, 120, 190, 190, 190
outs: 0b00000010, 0b00100000, 0b00000001, 0b00000100, 0b00001000, 0b00010000
resulttimes: 50, 120, 190, 0, 0, 0
resultouts: 0b00100010, 0b00000001, 0b00011100, 0b00000000, 0b00000000, 0b00000000
Т.е. если числа в times совпадают, то соответствующие им числа в outs «перемешиваются» операцией или (or) и помещаются в ячейку массива resultouts. Неиспользуемые ячейки resultouts и resulttimes нужно заполнить нулями.
Как же все это написать???
Всем привет!
Вопрос из разряда для новичков... =) Не могу разобраться с командой PIN на CodeVisionAVR. Точнее как считывать показания порта, если кнопка нажата.
Например: на порте А есть две кнопки, на порте В три светодиода. Нажимаем первую кнопку загорается первый светодиод, нажимаем вторую кнопку загорается второй светодиод. Если нажимаем обе кнопки одновременно, то загорается третий светодиод. Вообщем помогите написать эту простую программу.
И еще хотелось бы узнать как обойти дребезг контактов (замыкание, размыкание). Т.е. програмку тоже хотелось бы увидеть...
Всем заранее спасибо!!!
Вопрос из разряда для новичков... =) Не могу разобраться с командой PIN на CodeVisionAVR. Точнее как считывать показания порта, если кнопка нажата.
Например: на порте А есть две кнопки, на порте В три светодиода. Нажимаем первую кнопку загорается первый светодиод, нажимаем вторую кнопку загорается второй светодиод. Если нажимаем обе кнопки одновременно, то загорается третий светодиод. Вообщем помогите написать эту простую программу.
И еще хотелось бы узнать как обойти дребезг контактов (замыкание, размыкание). Т.е. програмку тоже хотелось бы увидеть...
Всем заранее спасибо!!!
- tych
- Э...
- Сообщения: 2792
- Зарегистрирован: Ср апр 04, 2007 08:39:14
- Откуда: Москва
- Контактная информация:
например такdbf-334 писал(а):Не могу разобраться с командой PIN на CodeVisionAVR. Точнее как считывать показания порта, если кнопка нажата.
Код: Выделить всё
куда считать = PINx.n ;Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
- RadioNefor
- Открыл глаза
- Сообщения: 56
- Зарегистрирован: Пт мар 28, 2008 00:39:54
- Откуда: Беларусь. Новополоцк.
- Контактная информация:
Это я и так знаю...tych писал(а):например такdbf-334 писал(а):Не могу разобраться с командой PIN на CodeVisionAVR. Точнее как считывать показания порта, если кнопка нажата.Код: Выделить всё
куда считать = PINx.n ;
И вообще пример хотелось бы, в том числе на дребезг.
- Aheir
- Модератор
- Сообщения: 4517
- Зарегистрирован: Пн апр 03, 2006 11:43:25
- Откуда: Санкт - Петербург
- Контактная информация:
Вы не поверите
Антидребезг, например, так:
Код: Выделить всё
состояние = PINx;
Код: Выделить всё
if (кнопка нажата)
{
delay_ms(10..30);
if (все еще нажата)
}
...
}
}
Оптимизм х (Опыт + Знания) = const
Aheir писал(а):Вы не поверите
Антидребезг, например, так:Код: Выделить всё
состояние = PINx;Код: Выделить всё
if (кнопка нажата) { delay_ms(10..30); if (все еще нажата) } ... } }
Черт, вроде пробовал так PINx не работал или я тогда где-то напортачил.
А на размыкание контактов подавление дребезга есть или это не так потребно на самом деле...?
P.S. Спасибки!
- tych
- Э...
- Сообщения: 2792
- Зарегистрирован: Ср апр 04, 2007 08:39:14
- Откуда: Москва
- Контактная информация:
В правильной проге дребезг не мешает.dbf-334 писал(а):А на размыкание контактов подавление дребезга есть или это не так потребно на самом деле...?
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
- regenerator
- Мучитель микросхем
- Сообщения: 462
- Зарегистрирован: Ср ноя 21, 2007 19:04:23
- tych
- Э...
- Сообщения: 2792
- Зарегистрирован: Ср апр 04, 2007 08:39:14
- Откуда: Москва
- Контактная информация:
Настраивать прерывания удобно матером кода CVAVRregenerator писал(а):Как сделать прерывание в CVAVR, чтоб через каждую секунду бесконечный цикл прерывался, выполнялись действия с переменными, а затем цикл продолжался?
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
- tych
- Э...
- Сообщения: 2792
- Зарегистрирован: Ср апр 04, 2007 08:39:14
- Откуда: Москва
- Контактная информация:
термин расшифруйте !Тихан писал(а):А Сбросить?
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
- regenerator
- Мучитель микросхем
- Сообщения: 462
- Зарегистрирован: Ср ноя 21, 2007 19:04:23
Я знаю, что такоё прерывания и какими они бывают. Мне не нужно "наглядно". Там у вас с кнопки. А мне надо по таймеру.tych писал(а):Настраивать прерывания удобно матером кода CVAVR .
Я просто не умею читать даташиты и поэтому не знаю в какие регистры, что нужно записывать.
И я не нашёл пример кода прерывания по таймеру.
Парень, наверное, имел веду, как установить по дэфолту.tych писал(а):термин расшифруйте !Тихан писал(а):А Сбросить?
- tych
- Э...
- Сообщения: 2792
- Зарегистрирован: Ср апр 04, 2007 08:39:14
- Откуда: Москва
- Контактная информация:
А вы читайте ВНИМАТЕЛЬНО !regenerator писал(а):я не нашёл пример кода прерывания по таймеру.
Задача 6
Создаем программу 50 раз в секунду прерывающуюся по Таймеру_0
и посылающую данные на ПК. Точная подгонка временных интервалов создаваемых с помощью таймеров. Различные режимы работы таймеров. В симуляторе VMLAB проверяем правильность времени прерываний и сохраняем принятые от МК данные в файл.
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru


