CodeVision AVR в вопросах и ответах
- Сообщения: 67
- Зарегистрирован: Сб мар 10, 2007 12:50:43
- Реклама
- Сообщения: 67
- Зарегистрирован: Сб мар 10, 2007 12:50:43
- Сообщения: 4
- Зарегистрирован: Вт янв 05, 2010 18:39:21
Народ помагите! =)) Делаю курсавик и там надо прошить через програматор BM9010 - USB ( вот он- http://www.masterkit.ru/main/set.php?code_id=276487 ) микроконтроллер ATmega8.Есть программа записанная в Си. Вот она:
enum {
LMax=140, //Left
L1=115,
L2=80,
L3=40,
RMax=140, //Right
R1=115,
R2=80,
R3=40,
};
как её с помощью CodeVisionAVR забить в микроконтроллер?? ( ктото мне сказал что надо сначало в HEX код перевести а потом както забить). До этого я в CodeVisionAVR никогда не работал. Помогите, please!!!
enum {
LMax=140, //Left
L1=115,
L2=80,
L3=40,
RMax=140, //Right
R1=115,
R2=80,
R3=40,
};
как её с помощью CodeVisionAVR забить в микроконтроллер?? ( ктото мне сказал что надо сначало в HEX код перевести а потом както забить). До этого я в CodeVisionAVR никогда не работал. Помогите, please!!!
это вообще не программкаminime писал(а):Маловата програмка для Си даже.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Сообщения: 4
- Зарегистрирован: Вт янв 05, 2010 18:39:21
Кхм...можт конечн я чегото не понимаю...но челове к создавший этого робота пишит что прога написана в Си...Вот сайт http://datagor.ru/blogs/guntis/460-robo ... ga-8..html
- Реклама
- Сообщения: 4
- Зарегистрирован: Вт янв 05, 2010 18:39:21
- Сообщения: 4
- Зарегистрирован: Вт янв 05, 2010 18:39:21
я выше вам ответил, что это такое. или читайте ответы, или не обижайтесь, что перестанут отвечать.Misha.91-joy писал(а):Дак как вы думаете что это если не прога в Си??
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Сообщения: 36
- Зарегистрирован: Сб мар 21, 2009 23:46:25
Научите меня, пожалуйста работать с отдельными битами переменной. Мне нужно считать бит с ножки, и записать его в нулевой бит переменной, потом сдвинуть переменную влево, и снова повторить тоже (в цикле!)
Так инициализирую переменную
Код
register unsigned char bufer;
А на эту строку матерится кодевижн
Код
bufer.0=PIND.0;
с портами ввода\вывода такой код работает, а с переменными нехочет
Так инициализирую переменную
Код
register unsigned char bufer;
А на эту строку матерится кодевижн
Код
bufer.0=PIND.0;
с портами ввода\вывода такой код работает, а с переменными нехочет
не знаю, как там CVAVR ваш любимый делаеть должен, но все обычные сишники делают так:
Код: Выделить всё
unsigned char i, bufer = 0;
for(i=0; i<8; i++){
bufer <<= 1;
if (PIND.0) // хотя более универсально так (PIND & (1<<PD0))
bufer |= 1;
}
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Сообщения: 36
- Зарегистрирован: Сб мар 21, 2009 23:46:25
а в чем проблема? если все кнопки к одному порту подключены - считывайте сразу всех одновременно, ну а если к разным - более муторно, но в общем тоже не сложно...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
ну, во-первых, рекомендую замыкать кнопки на общий, а на пины подавать подтяжку встроенную. у вас сейчас выходит так, что от кнопки порт заряжается (не забыли, что вход МК это по сути затвор полевика?), а при отпускании кнопки разряжаться ему некуда... вот единичка там и висит. а когда будете замыкать на 0 - затвор разрядится, а при отпускании будет заряжаться от подтяжки - и все будет пучком.
опрос кнопок для практических конструкций логичнее сделать по типу компьютерного, т.е. сделать функцию, которая возвращает код нажатой кнопки. примерно так:
в основной программе делаете примерно так:
опрос кнопок для практических конструкций логичнее сделать по типу компьютерного, т.е. сделать функцию, которая возвращает код нажатой кнопки. примерно так:
Код: Выделить всё
#define KEY1 1
#define KEY2 2
#define KEY3 3
unsigned char get_key(void){
unsigned char tmp;
tmp = ~PINB & ((1<<KEY1) | (1<<KEY2) | (1<<KEY3));
delay_ms(15); // подавление дребезга
if(tmp != (~PINB & ((1<<KEY1) | (1<<KEY2) | (1<<KEY3))))
return 0; // был дребезг, считаем, что нет нажатых кнопок
else
return tmp; // иначе вернем код нажатых кнопок
}Код: Выделить всё
switch(get_key()){
case KEY1: // тут обрабатываете нажатие первой кнопки
break;
case KEY2: // тут - второй
break;
case KEY1 | KEY2 : // тут можно обработать одновременное нажатие двух кнопок
break;
// и так далее
default:
// тут что-то если не нажата ни одна или запретная комбинация
}если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
и в реале, а в протеусе все пашет с подтяжками. это факт.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
скажите, программный шим правильно я делаю?
Код: Выделить всё
PORTC=0x00;
ligth=1;
revers=0;
while(1){
if(ligth=255) revers=1;
if(ligth=0) break;
if(revers)=1 light--;
if(revers)=0 light++;
~PORTC.0;
delay_ms(light);
}
похоже, что не правильно. не заметил вообще, что у вас хоть как-то меняется скважность сигнала. даже если допустить, что ~PORTC.0 действительно изменит уровень на порту - вы получите меандр и все. но на самом деле вы вообще нифига не получитеssvd писал(а):скажите, программный шим правильно я делаю?Код: Выделить всё
PORTC=0x00; ligth=1; revers=0; while(1){ if(ligth=255) revers=1; if(ligth=0) break; if(revers)=1 light--; if(revers)=0 light++; ~PORTC.0; delay_ms(light); }
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
можно как нибудь по подробнее, что надо менять и в чем ошибка...ARV писал(а):похоже, что не правильно. не заметил вообще, что у вас хоть как-то меняется скважность сигнала. даже если допустить, что ~PORTC.0 действительно изменит уровень на порту - вы получите меандр и все. но на самом деле вы вообще нифига не получитеssvd писал(а):скажите, программный шим правильно я делаю?Код: Выделить всё
PORTC=0x00; ligth=1; revers=0; while(1){ if(ligth=255) revers=1; if(ligth=0) break; if(revers)=1 light--; if(revers)=0 light++; ~PORTC.0; delay_ms(light); }
начал только разбираться сшимом, хотелось бы что бы помогли...


