Форум myROBOT.ru » Шаг за шагом » Программирование микроконтроллеров » Проблема с программированием МК

Страниц (17): « 1 2 3 [4] 5 6 7 8 9 ... » В конец
 

46. Иван - 22 Июня, 2009 - 23:31:22 - перейти к сообщению
Гусек,
Цитата:
В Windows 2000 и Windows XP запрещена прямая работа с параллельным (LPT) портом, поэтому для нормальной работы AVRDUDE необходимо установить драйвер giveio.sys. Для установки этого драйвера зайдите в папку WinAVR\bin и запустите файл install_giveio.bat (удалить драйвер из системы можно, запустив файл remove_giveio.bat).
В Windows 98 никаких специальных настроек не требуется.


http://myrobot.ru/stepbystep/mc_programmer.php смотри внизу, может это оно... Подмигивающий
47. Гусек - 24 Июня, 2009 - 23:13:37 - перейти к сообщению
ну вообще я устанавливал этот драйвер. Проблема в чем то другом Замешательство
(Добавление)
Скажите пожалуйста в чем еще может быть проблема? Может это быть неисправность МК
или ошибка в цепи???
48. Admin - 26 Июня, 2009 - 13:40:45 - перейти к сообщению
Посмотрите есть ли у Вас вообще параллельный порт в системе.
49. Гусек - 22 Июля, 2009 - 11:26:25 - перейти к сообщению
Я посмотрел в диспетчере устройств порт есть. Все как показанно на рисунке.
50. Гость - 22 Июля, 2009 - 13:16:44 - перейти к сообщению
Вопрос туда же:
как просмотреть подключен ли програматор к этому(ЛПТ1) порту?
51. бот_м_16 - 22 Июля, 2009 - 13:22:45 - перейти к сообщению
Посмотреть на обратную сторону системника....
52. Гость - 22 Июля, 2009 - 13:47:07 - перейти к сообщению
Замешательство Смешно...
53. бот_м_16 - 22 Июля, 2009 - 14:08:15 - перейти к сообщению
Прочитать сигнатуру камня...
54. nexyse - 23 Августа, 2009 - 22:26:10 - перейти к сообщению
Здраствуйте, спаял "проект на микроконтроллере" и программатор "5 проводков" с 4мя резисторами, но, вот, с ошибками, неработает, рёв в три ручья
когда нажимаю прошить программу ВинАвр не находит мой прибор, пишет тоже самое, как если не подключать его(прибор):
"avrdude: AVR device not responding
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check."

есть пара вопросов,

1. должно ли появляться что-то вроде "обнаружено новое устройство" или другой сигнал говорящий о подключении устройства, когда подключаеш.

2. когда подключаю мой прибор, бывает диод горит, бывает нет, бывает еле-еле горит, причем от того подключены ли батарейки ничего не меняется, когда програматор отключаю от прибора - подключаю прибор только к батарейкам, то никогда диод не горит. Это у всех так?

3. как правильно припаять конденсаторы и резонатор,я имею ввиду: у них есть ножка " + " и ножка " - " как у диода, или они как резистор - без разницы какой стороной цеплять? Когда я паял, то почемуто думал что их неважно какой стороной паять.
55. Admin - 24 Августа, 2009 - 22:56:12 - перейти к сообщению
1. нет

2. Это зависит от состояния и настроек LPT-порта и операциооной системы и это нормально.

3. не важно.
Кроме того, их можно вообще не припаивать. ATmega8 будет работать и без внешнего тактирующего сигнала, так как ее внутренние настройки с завода установлены на работу с внутренним генератором (1 MHz). Но на плате для них место зарезервировать надо, чтобы потом поэкспериментировать с различными источниками тактирования и настройками fuse-битов.

Попробуйте проверить наличие LPt-порта в "Дипетчере устройств". Если его там нет, то установите в BIOS.
Не забудьте установить драйвер giveio.
Проверьте правильность соединений.
Если соединения правильные и ничего не получается, попробуйте "прошить" микроконтроллер на другом компьютере.
56. dimamukhin - 25 Августа, 2009 - 00:21:32 - перейти к сообщению
Помогите разобраться :

При нажатии PINC.2 загорается 1-й светодиод вместо 2 и 5-го.
Где ошибка ? Ламер

программа codeVision

char i=0 , a , c;
PORTD=0b00000010 ;

While (1)
{



while (PINC.2==0)
{
i++;
if(i>4)i=0;
c=0b00001000<<i;
a=PORTD||c;
PORTD=a;
delay_ms(100);
};
}
57. Admin - 26 Августа, 2009 - 00:35:12 - перейти к сообщению
А это у Вас для чего?

dimamukhin пишет:
a=PORTD||c;


Операция логического 'или'

выражение || выражение

Операция || группируется слева направо. Она возвращает 1,
если один из операндов отличен от нуля, и 0 в противном слу-
чае. В отличие от операции | операция || гарантирует вычис-
ление слева направо; более того, если первый операнд отличен
от нуля, то значение второго операнда вообще не вычисляется.

Операнды не обязаны быть одинакового типа, но каждый из
них должен быть либо одного из основных типов, либо указате-
лем. Результат всегда имеет тип int.
58. Dimsan - 26 Августа, 2009 - 10:52:34 - перейти к сообщению
2dimamukhin, выложи всю программу полностью, а то я вижу, что это какие-то куски.
Я не вижу где конфигурируются вход и выходы. Что имеется в виду 1 светодиод? Светодиод на PORTD.1?
И вообще, зачем так мудрить?? Нужен какой-то определённый уикл мигания?
59. dimamukhin - 26 Августа, 2009 - 22:39:34 - перейти к сообщению
#include <mega8.h>
#include <delay.h>

char i=0, a, c;

void main(void)
{

PORTC=0xFF;
DDRC=0x00;

PORTD=0b00000010 ; постоянно должен гореть 2-ой светодиод;
DDRD=0xFF;

TCCR0=0x00;
TCNT0=0x00;


ACSR=0x80;
SFIOR=0x00;



while (1)

{
while (PINC.2==0)
{
i++;
if(i>4)i=0;
c=0b00001000<<i; с каждым нажатием на PINС.2 светодиод должен смещаться , а 2-ой постоянно гореть.
a=PORTD||c;
PORTD=a;
delay_ms(100);
}
}
}

Вобщем смысл такой , чтобы при нажатии кнопки, 2-ой светодиод горел, а другой смещался на еденичку влево !
60. Shum - 27 Августа, 2009 - 14:30:09 - перейти к сообщению
1) i++; ставь после того как зажется светик, так как по умолчанию, i=0, что должно зажигать первый светодиод, иначе, ты его пропустишь!
2) во вторых, что это такое || ??? поставь ОДНУ палочку |, и будет тебе поразрядное логическое сложение "ИЛИ"...

вот такое хотел(проверил работает):
#include <mega8.h>
char i=0;
void main(void)
{
PORTC=0xFF;
DDRC=0x00;
PORTD=0b00000010 ; //постоянно должен гореть 2-ой светодиод;
DDRD=0xFF;
TCCR0=0x00;
TCNT0=0x00;
ACSR=0x80;
SFIOR=0x00;

while (1){
while (PINC.2==0){
if(i>4){i=0;}

PORTD=(2)|(1<<i);
i++;
while(PINC.2==0) {}
}}}