roboforum.ru

Технический форум по робототехнике.

CodeVisionAVR - версия 2!

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

Re: CodeVisionAVR - версия 2!

Сообщение Korbofos » 29 июн 2011, 14:08

Попробывал так
Код: Выделить всёРазвернуть
sfrb SREG=0x3f;
sfrb OCR3AL=0x86;
sfrb OCR3AH=0x87;
sfrw OCR3A=0x86;

выдаёт ошибку:

Error: C:\Cvavr2\inc\mega128.h(80), included from: adc.c: invalid SFR address, must be 0x00..0x3F
РАБОТА, РАБОТА перейди на Федота, с Федота на его брата, а ко мне их зарплата.
Аватара пользователя
Korbofos
 
Сообщения: 317
Зарегистрирован: 15 янв 2011, 11:27
Откуда: Челябинск
прог. языки: C/C++
ФИО: Александр

Re: CodeVisionAVR - версия 2!

Сообщение Korbofos » 29 июн 2011, 21:05

В CVAVR можно ли выставить фьюзы?
РАБОТА, РАБОТА перейди на Федота, с Федота на его брата, а ко мне их зарплата.
Аватара пользователя
Korbofos
 
Сообщения: 317
Зарегистрирован: 15 янв 2011, 11:27
Откуда: Челябинск
прог. языки: C/C++
ФИО: Александр

Re: CodeVisionAVR - версия 2!

Сообщение Romikgy » 30 июн 2011, 01:00

#define OCR3A (*(unsigned int *) 0x86)
говорят так на avr freaks ....
при програмации можно выставлять любые фьюзы ... они к самой прошивке отношения не имеют ... и программятся отдельно
die Wahrheit ist irgendwo da draußen
Аватара пользователя
Romikgy
 
Сообщения: 750
Зарегистрирован: 15 ноя 2009, 13:37
Откуда: Porto Franco "Odessa"

Re: CodeVisionAVR - версия 2!

Сообщение Korbofos » 30 июн 2011, 05:43

Romikgy писал(а):#define OCR3A (*(unsigned int *) 0x86)
говорят так на avr freaks ....
при програмации можно выставлять любые фьюзы ... они к самой прошивке отношения не имеют ... и программятся отдельно

Спс :good:
РАБОТА, РАБОТА перейди на Федота, с Федота на его брата, а ко мне их зарплата.
Аватара пользователя
Korbofos
 
Сообщения: 317
Зарегистрирован: 15 янв 2011, 11:27
Откуда: Челябинск
прог. языки: C/C++
ФИО: Александр

Re: CodeVisionAVR - версия 2!

Сообщение Korbofos » 03 июл 2011, 17:54

Корректно ли так делать?
Код: Выделить всёРазвернуть
void motor1_set_pwm(signed char m1)
{
  unsigned char m1_set_pwm;
  m1_set_pwm=(m1*255/100);
  PWM_1=m1_set_pwm;
}


если в m1 передать значение -50
m1_set_pwm - будет равно 127?

PS в протеусе какая то ерунда получается...
РАБОТА, РАБОТА перейди на Федота, с Федота на его брата, а ко мне их зарплата.
Аватара пользователя
Korbofos
 
Сообщения: 317
Зарегистрирован: 15 янв 2011, 11:27
Откуда: Челябинск
прог. языки: C/C++
ФИО: Александр

Re: CodeVisionAVR - версия 2!

Сообщение MiBBiM » 03 июл 2011, 18:29

(m1*255/100) == (знак*беззнак/беззнак) (в си при вычислении происходит приведение беззнаковых к знаковым) => (знак*знак/знак).
если кодвижн приводит размер констант к байту, то 255 -> -1, -50*(-1)=50, частное от деления 50 на 100 будет 0, m1_set_pwm==0
если константы по два байта, то 255 -> 255, после умножения получается 255*(-50)==-12750, частное от деления на 100 == -127 == FF81h, присваивается младший байт, 81h == 129
Tomorrow will be. Better
Аватара пользователя
MiBBiM
 
Сообщения: 1866
Зарегистрирован: 29 окт 2007, 18:11
Откуда: Пермь
прог. языки: Brainfuck/Basic/Delphi/C++/Lisp/x86asm/JavaScript

Re: CodeVisionAVR - версия 2!

Сообщение Korbofos » 03 июл 2011, 18:51

Тогда и это предётся переделывать? :shock:
Код: Выделить всёРазвернуть
void servo (signed char servo, signed char pos)
{
int position;
if ((servo&&pos)==0)
{
servo_off();
return;
}
else if(SERV==OFF){servo_on();}
if (servo>8){servo=8;}
if (servo<1){servo=1;}
if (pos>85){pos=85;}
if (pos<-85){pos=-85;}
position = ((5,55*pos+1500)*2);
servo_position[servo]=position;
}

signed char get_servo_position (char servo)
{
signed char position;
position=(((servo_position[servo]/2)-1500)/5,55);
return position;
}

signed char distance(char adc)
{
signed char r;
if(adc==0){return 0;}
r=(2000/(adc+2)-7);
return r;

РАБОТА, РАБОТА перейди на Федота, с Федота на его брата, а ко мне их зарплата.
Аватара пользователя
Korbofos
 
Сообщения: 317
Зарегистрирован: 15 янв 2011, 11:27
Откуда: Челябинск
прог. языки: C/C++
ФИО: Александр

Re: CodeVisionAVR - версия 2!

Сообщение MiBBiM » 03 июл 2011, 19:27

эм, не имею понятия =)
возможно вам поможет глава Преобразование типов от Кернигана и Ричи (уделите внимание неявному преобразованию) или внутренняя справка кодвижна (насколько я помню, там было небольшое описание языка)
Tomorrow will be. Better
Аватара пользователя
MiBBiM
 
Сообщения: 1866
Зарегистрирован: 29 окт 2007, 18:11
Откуда: Пермь
прог. языки: Brainfuck/Basic/Delphi/C++/Lisp/x86asm/JavaScript

Re: CodeVisionAVR - версия 2!

Сообщение Korbofos » 03 июл 2011, 19:50

Спс. А думал что всё так просто))) буду мозговать...
РАБОТА, РАБОТА перейди на Федота, с Федота на его брата, а ко мне их зарплата.
Аватара пользователя
Korbofos
 
Сообщения: 317
Зарегистрирован: 15 янв 2011, 11:27
Откуда: Челябинск
прог. языки: C/C++
ФИО: Александр

Re: CodeVisionAVR - версия 2!

Сообщение Korbofos » 04 июл 2011, 01:48

Использовал int результат тот же(((
РАБОТА, РАБОТА перейди на Федота, с Федота на его брата, а ко мне их зарплата.
Аватара пользователя
Korbofos
 
Сообщения: 317
Зарегистрирован: 15 янв 2011, 11:27
Откуда: Челябинск
прог. языки: C/C++
ФИО: Александр

Re: CodeVisionAVR - версия 2!

Сообщение Romikgy » 05 июл 2011, 10:10

а как покажи...
die Wahrheit ist irgendwo da draußen
Аватара пользователя
Romikgy
 
Сообщения: 750
Зарегистрирован: 15 ноя 2009, 13:37
Откуда: Porto Franco "Odessa"

Re: CodeVisionAVR - версия 2!

Сообщение Korbofos » 06 июл 2011, 21:46

Ушёл от минуса вообще, направление вращения двигателя буду определять по младшему байту.
РАБОТА, РАБОТА перейди на Федота, с Федота на его брата, а ко мне их зарплата.
Аватара пользователя
Korbofos
 
Сообщения: 317
Зарегистрирован: 15 янв 2011, 11:27
Откуда: Челябинск
прог. языки: C/C++
ФИО: Александр

Re: CodeVisionAVR - версия 2!

Сообщение Korbofos » 07 июл 2011, 11:08

Как в CVAVR удалить глобальную переменную?
РАБОТА, РАБОТА перейди на Федота, с Федота на его брата, а ко мне их зарплата.
Аватара пользователя
Korbofos
 
Сообщения: 317
Зарегистрирован: 15 янв 2011, 11:27
Откуда: Челябинск
прог. языки: C/C++
ФИО: Александр

Re: CodeVisionAVR - версия 2!

Сообщение galex1981 » 07 июл 2011, 11:16

руками...
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4363
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

Re: CodeVisionAVR - версия 2!

Сообщение Korbofos » 07 июл 2011, 11:38

Я знаю, можно ещё лазером выжеч, только нужно точно попасть в ту часть мк, где хранится эта переменная)))
В книге Л.Б.Лебедева Cvavr про удаленее переменных нечего не сказано(((
РАБОТА, РАБОТА перейди на Федота, с Федота на его брата, а ко мне их зарплата.
Аватара пользователя
Korbofos
 
Сообщения: 317
Зарегистрирован: 15 янв 2011, 11:27
Откуда: Челябинск
прог. языки: C/C++
ФИО: Александр

Пред.След.

Вернуться в Микроконтроллеры

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 3