CodeVision AVR в вопросах и ответах
-
Misha.91-joy
- Родился
- Сообщения: 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!!!
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
это вообще не программкаminime писал(а):Маловата програмка для Си даже.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
-
Misha.91-joy
- Родился
- Сообщения: 4
- Зарегистрирован: Вт янв 05, 2010 18:39:21
Кхм...можт конечн я чегото не понимаю...но челове к создавший этого робота пишит что прога написана в Си...Вот сайт http://datagor.ru/blogs/guntis/460-robo ... ga-8..html
-
Misha.91-joy
- Родился
- Сообщения: 4
- Зарегистрирован: Вт янв 05, 2010 18:39:21
-
Misha.91-joy
- Родился
- Сообщения: 4
- Зарегистрирован: Вт янв 05, 2010 18:39:21
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
я выше вам ответил, что это такое. или читайте ответы, или не обижайтесь, что перестанут отвечать.Misha.91-joy писал(а):Дак как вы думаете что это если не прога в Си??
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Научите меня, пожалуйста работать с отдельными битами переменной. Мне нужно считать бит с ножки, и записать его в нулевой бит переменной, потом сдвинуть переменную влево, и снова повторить тоже (в цикле!)
Так инициализирую переменную
Код
register unsigned char bufer;
А на эту строку матерится кодевижн
Код
bufer.0=PIND.0;
с портами ввода\вывода такой код работает, а с переменными нехочет
Так инициализирую переменную
Код
register unsigned char bufer;
А на эту строку матерится кодевижн
Код
bufer.0=PIND.0;
с портами ввода\вывода такой код работает, а с переменными нехочет
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
не знаю, как там CVAVR ваш любимый делаеть должен, но все обычные сишники делают так:
Код: Выделить всё
unsigned char i, bufer = 0;
for(i=0; i<8; i++){
bufer <<= 1;
if (PIND.0) // хотя более универсально так (PIND & (1<<PD0))
bufer |= 1;
}
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
а в чем проблема? если все кнопки к одному порту подключены - считывайте сразу всех одновременно, ну а если к разным - более муторно, но в общем тоже не сложно...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
ну, во-первых, рекомендую замыкать кнопки на общий, а на пины подавать подтяжку встроенную. у вас сейчас выходит так, что от кнопки порт заряжается (не забыли, что вход МК это по сути затвор полевика?), а при отпускании кнопки разряжаться ему некуда... вот единичка там и висит. а когда будете замыкать на 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:
// тут что-то если не нажата ни одна или запретная комбинация
}если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
и в реале, а в протеусе все пашет с подтяжками. это факт.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- ssvd
- Нашел транзистор. Понюхал.
- Сообщения: 167
- Зарегистрирован: Ср ноя 04, 2009 18:00:56
- Откуда: Алтайский край
- Контактная информация:
скажите, программный шим правильно я делаю?
Код: Выделить всё
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
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
похоже, что не правильно. не заметил вообще, что у вас хоть как-то меняется скважность сигнала. даже если допустить, что ~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);
}
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- ssvd
- Нашел транзистор. Понюхал.
- Сообщения: 167
- Зарегистрирован: Ср ноя 04, 2009 18:00:56
- Откуда: Алтайский край
- Контактная информация:
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);
}
можно как нибудь по подробнее, что надо менять и в чем ошибка...
начал только разбираться сшимом, хотелось бы что бы помогли...
