Jump to content

retcom

Members
  • Content Count

    71
  • Joined

  • Last visited

Community Reputation

0 Обычный

About retcom

  • Rank
    Осваивающийся

Информация

  • Пол
    Мужчина
  • Город
    Нижний Новгород
  1. DJ Димон, твой код такой же как и мой. Ты действительно считаешь, что этого достаточно? Прочти внимательно что я написал в начале.
  2. Здравствуйте! Как отправить символы в порт, это знают все. А вот как прочитать, чтоб не потерять ни одного символа, чтоб считывалось значение из порта (СОМ), друг за дружкой? По мере их поступления? Я в начале хотел зделать что-то типа: int i = 0; int b[] = 0; while(1) { b = inport(com); i++; } Но потом подумал, если я так сделаю, то массив будет инициализироваться гараздо большими значениями, чем их есть на самом деле. Потому что чтение будет происходить на скорости контроллера порта. Так? 1. Может быть нужна синхронизация? 2. Чтоб приемник и передатчик работали на одной скорости? 3. Между отправляемыми и получаемыми символами нужна задержка? 4. Символ, который из вне пришел в порт, держится там до того, как не придет другой символ? 5. Обнулять, после прочтения, не нужно? Я думаю надо. И поставить условие в программу, что если порт не ноль, занести значение в следующий элемент массива. Подскажите, пожалуйста, и поправте мои выкладки, кто знает.
  3. Получилось у меня! Спасибо большое! Я урвал из каждого примера-предложения кусочек и скроил вот такую менюшку: if(PIND.6==0) { delay_ms(50); if(PIND.6==0) { delay_ms(50); n++; if(n==4) n=1; } else n=0; if(n==1) { lcd_clear(); delay_ms(300); lcd_gotoxy(1,0); lcd_putsf("Clock"); } else if (n==2) { lcd_clear(); delay_ms(300); lcd_gotoxy(1,0); lcd_putsf("Temperatura"); } else if(n==3) { lcd_clear(); delay_ms(300); lcd_gotoxy(1,0); lcd_putsf("Radiation"); } delay_ms(50); } Одна голова хорошо, а много лучше, не только у дракона, но и у людей.
  4. Ребят, я извиняюсь, конечно, но когда мне нужно услышать звук, я бью кулаком в стену и слышу его. Четко и понятно. В данном случае, пользы от стены больше, чем от ваших ответов. Вопрос очень простой. Я это говорю как программист С++. Но нужно сделать привязку к контроллеру. Чтоб срабатывало только когда нажимаешь на кнопку. У меня же срабатывает само по себе (бежит перебор) либо только первая строка. Мне нужно: нажал один раз - одна надпись, нажал второй - вторая надпись, ... . У меня же такое ощущение, что о контроллерах вы первый раз услышали и приводите предположение, как это должно быть. Одна кнопка к PIND.6 припаяна к '-' - это правильно? DDRD=0x00 PORTD=0x00 Должно так быть? Плюс код: что нужно? сторожевой таймер сбросить или что конкретно?
  5. Смотри http://www.qrz.ru/, там слева в разделе 'Навигатор', внизу, есть ссылка 'помощь'
  6. Лучше спросить у автора схемы: Тимофей Носов ICQ# 770008 E-mail ntv1978 (at) mail.ru www.miliamper.narod.ru
  7. Привет! МК ATmega16. К PIND.6 присоединена кнопка, выводом на ‘-’. В программе хочу, в зависимости от численного значения счетчика ‘n’, выводить то или иное сообщение на ЖК: int n = 0x30; //--------------------------------------------------------- Пропускаю конфигурацию портов и таймеров //--------------------------------------------------------- DDRD=0x00; PORTD=0x00; //--------------------------------------------------------- Пропускаю конфигурацию портов и таймеров //--------------------------------------------------------- while(1) { if(PIND.6==0) n=n+1; switch(n) { Case 1: lcd_clear(); lcd_gotoxy(1,0); lcd_putsf("Hello"); Break; Case 2: lcd_clear(); lcd_gotoxy(1,1); lcd_putsf("avr123.nm.r"); Break; Case 3: lcd_clear(); lcd_gotoxy(2,1); lcd_putsf("u"); Break; } } Почему-то не работает. Не подскажите, что я не правильно делаю?
  8. Ну что мне делать то?
  9. Питание 5.24 V. От трех батареек. Я подключаю к Vcc '+', а к GND '-'. Вроде работает. Делал наоборот (не с этим контроллером), мк греется очень сильно. Сразу выключаю. Как он мог помереть? Я его только что купил. Если убираю галочку с Check Signature, то идет процесс считывания (CodeVisionAVR) Если оставляю, то говорит опять одно и тоже: Chip Signature mismatch read: Byte0=1Eh Byte1=00h Byte2=03h Byte0=1Eh Byte1=94h Byte2=03h -OK-
  10. Делал. То же самое, не шьет. Проверил. Даже перепаял. Делал. Безрезультатно. Скачал. Он говорит, что МК не откликнулся, нужно проверить порт и соединение. Как их устранил??! У меня это 2-ой мк, который не хочет прошиваться после 2-ой прошивки! Закономерность! Что-то может с фьюзами сделать? Я проверил в "Администрировании", просмотр событий->система. Так там нашел два события: 1. Служба "LPT port direct access service" успешно отправила управляющий элемент "запустить". 2. Служба "DriverLINX Port I/O Driver" успешно отправила управляющий элемент "запустить". Значит все у меня в порядке. Это что-то с мк нужно делать. И еще возможно мне продают контроллеры, которые можно прошивать только два раза? Может быть такое? ATmega16 16PI 0539J.
  11. Привет! Прошиваю контроллер ATmega16. Прошить удается только 2 раза. Притом, что это пробные две прошивки. Потом, появляются ошибки такого рода (появляется окно): Chip Signature mismatch read: Byte0=1Eh Byte1=00h Byte2=03h Byte0=1Eh Byte1=94h Byte2=03h -OK- Нажимаю ОК, появляется такое окно: FLASH contents mismatch at address: 0h FLASH Read: 0000h Buffer data: 940Ch. Continue? -Yes- -No- Нажимаю Yes, появляются такие же окна, но с другими адресами. В конце появляется длинная простыня, показывающая конфигурацию фьюзов. Я ИХ ВООБЩЕ НЕ ТРОГАЮ. Что делать? Мой файл прошивки всего 3 Кбайт.
  12. Привет! У меня такая проблема, такое было у кого-нибудь? Начинаю прграммировать AVR ATmega16. Пишу и прошиваю (пытаюсь) в CodeVisionAvr. Программатор STK200/300, ВМ9009, шина 10 проводков: 1 - MOSI 2 - "-" (5V) 3 - XTAL1 4, 6, 8, 10 - "+" (GND) 5 - Reset 7 - SCK 9 - MISO Я уже разъем отрезал, и припаял провода шлейфа к выводам МК (вернее к кроватке). Вроде, все настройки правильные. ОС у меня ХР сервиспак2. LPT настроен в BIOSe, как ЕСР, адрес как 378. Питание от 3 батареек 5.40 V. На все попытки (см. картинку), такое сообщение: Мало того, ПониПрог говорит, что девайс ненайден или неисправен (МК новенький). По выводам МК, вроде, все тоже правильно: 6 - MOSI 7 - MISO 8 - SCK 9 - Reset 10 - "+" 11 - "-" 13 - XTAL1 Почему у меня не получается? Помогите, пожалуйста, а то я в конец уже заманался, как будто головой в стену бьюсь, бьюсь, а стене хоть бы что.
  13. Значит 2 вывода на + и -, а ползунок на Vo? Я правильно понял?
×
×
  • Create New...