Страница 365 из 421

Re: CodeVision AVR в вопросах и ответах

Добавлено: Пн июл 11, 2016 16:38:56
SIM31
У меня иногда глюк похожий с интерфейсом, выскакивает окно с кнопкой под формой редактирования кода (вероятно дочернее окно с вопросом типа "сохранить изменения?"), основное окно замораживается, активно окно снизу, но его не видно, активное окно скрыто "замороженной" формой. Выход или закрыть программу с несохраненными данными по alt+ctr+del как зависшую или пытаться нажать кнопку "ок"(?) на невидимой форме под основной формой.
CAVR 3.12, Windows 7 64 бит.
Похоже связано с переключением между несколькими программами, например между Proteus и СAVR, ОС возвращает фокус не на то окно.

Re: CodeVision AVR в вопросах и ответах

Добавлено: Пн июл 11, 2016 17:40:10
forfrends
Добрый день! Имеется программатор USBasp (http://www.fischl.de/usbasp/). Он вполне хорошо работает с AVRDUDE, но хочется его подружить с CodeVision AVR.
Нашел статью что его нужно прошить спец. прошивкой как AVR DOPER (STK500). Сказано-сделано: прошил, драйвера установил, в системе появился Communication port (8). НО! В настройках CodeVision AVR я не нашел как можно выбрать порт № 8... В списке только 5 портов :(
Что делать? как их подружить?

Re: CodeVision AVR в вопросах и ответах

Добавлено: Пн июл 11, 2016 19:05:16
oleg110592
Диспетчер устройств:
Изображение

Re: CodeVision AVR в вопросах и ответах

Добавлено: Пн июл 11, 2016 20:01:14
forfrends
oleg110592, Спасибо большое! Поменял номер порта с 8-го на 2-й! Но в CVAVR этот номер порта исчез... исть только 1,3,4,5.... 2-го уже нет... в чем может быть проблема?

Re: CodeVision AVR в вопросах и ответах

Добавлено: Вт июл 12, 2016 00:37:20
oleg110592
настройки терминала мешают
Изображение

Re: CodeVision AVR в вопросах и ответах

Добавлено: Вт июл 12, 2016 07:49:42
forfrends
oleg110592, в терминале тоже нет 2-го порта. На всякий случай поменял номер на 4-й. Результата это не дало. 2-й порт нигде не виден.
Может быть дело в прошивке? Может CodeVision AVR просто не в состоянии работать с таким программатором и просто "игнорируент" его?
CodeVision AVR 3.10 Advanset
В прикрепленном архиве материалы для AVR-Doper. Прошивку для USBasp брал AVR-Doper.2012-12-08\firmware\usbasp-mega8-12mhz.hex
Все материалы брал здесь : http://makesystem.net/?p=6#.V4SRAEaLSUl

Re: CodeVision AVR в вопросах и ответах

Добавлено: Вт июл 12, 2016 10:56:30
oleg110592
пользовался ранее подобным USBaspу программатором от Протоса, отсюда http://electronix.ru/forum/lofiversion/ ... 6-300.html с альтернативной прошивкой STK500 от Alfa (для USBasp может не подойти!). Для нормальной работы надо было еще "Исполнить танец с бубном - в диспетчере устройств установить для COM порта скорость 115200", может поможет.
p/s по вашей ссылке есть еще о снятии перемычки "slow SCK".

Re: CodeVision AVR в вопросах и ответах

Добавлено: Вс июл 31, 2016 10:13:32
forfrends
В общем, собрал программатор AVR910 с этой страницы: http://prottoss.com/projects/AVR910.usb ... rammer.htm
Собрал, прошил прошивкой 1.05 от 17.01.2007, выставил фьюзы. Подключаю к компу, устанавливаю драйвера - проблем никаких нет. Программатор установился на COM1.
Запускаю CVAVR - та же проблема: ни в терминале, ни в настройках программатора нет COM1 ! Пробовал менять скорость работы COM, пробовал менять № COM - не помогло.
Попробовал перепрошить прошивкой STK500 от Alfa (http://electronix.ru/forum/lofiversion/ ... 6-300.html) - результат тот же.
В настройках CVAVR пробовал программаторы STK500/AVRISP и AVRProg(AVR910).
Что можете посоветовать? Почему CVAVR не видит программатор?
Характеристики компа:
Microsoft Windows 7 Ultimate х64
Проц: AMD FX-6100, 3600 MHz
Материнка: MSI 760GM-P21/FX
ОЗУ: 8176 МБ

хм....
Удалил ранее установленный драйвер - в системе определилось новое устройство - AVR DOPER. Но что-то на один драйвер не хочет устанавливаться (прошивка от Alfa). Можете помочь со ссылкой на драйвера?

Re: CodeVision AVR в вопросах и ответах

Добавлено: Вс июл 31, 2016 18:11:14
forfrends
В общем после долгих исканий и проб установил все-таки прошивку и драйвер. Работает. Только жаль что из Rx и Tx только 1 светодиод светится

Re: CodeVision AVR в вопросах и ответах

Добавлено: Пн авг 01, 2016 13:05:35
kotriks
народ помогите не компилится, или я что то не так делаю

Код: Выделить всё

eeprom unsigned char Key[10];

void crypt(){
unsigned char b;
b^b=Key;
}


Re: CodeVision AVR в вопросах и ответах

Добавлено: Пн авг 01, 2016 13:12:28
Vov123

Код: Выделить всё

b^b=Key;
:)))

Re: CodeVision AVR в вопросах и ответах

Добавлено: Пн авг 01, 2016 14:29:52
pyzhman
kotriks писал(а):не компилится
Что пишет в сообщениях?

Re: CodeVision AVR в вопросах и ответах

Добавлено: Пн авг 01, 2016 14:46:58
ARV
pyzhman писал(а):Что пишет в сообщениях?
что кое-кто не знает Си :)))

Re: CodeVision AVR в вопросах и ответах

Добавлено: Пн авг 01, 2016 15:30:06
WiseLord
kotriks писал(а):не компилится, или я что то не так делаю
Вы пытаетесь b^b присвоить указатель Key. Что это? Зачем это?

Re: CodeVision AVR в вопросах и ответах

Добавлено: Пн авг 01, 2016 16:38:17
COKPOWEHEU
char XOR char = char[10];
Конечно, компилятор впадает в ступор. Кто бы не впал!

Re: CodeVision AVR в вопросах и ответах

Добавлено: Пн авг 01, 2016 16:47:52
kotriks
может это как то подругому надо выразить, помогите не соображу.
Key - берётся из памяти процессора ключ шифрования и под средством его заносится в память.

Код: Выделить всё

eeprom unsigned char Key[10];

void crypt(){
unsigned char b;
b^b=Key;
}

void writeData(unsigned char read){ 
i2c_start(); 
i2c_write(0xa0);
i2c_write(addr>>8); 
i2c_write(addr & 0x00FF); 
page_stop_status=0;     
i2c_write(read=crypt());  

 }   
} 

Re: CodeVision AVR в вопросах и ответах

Добавлено: Пн авг 01, 2016 17:26:40
WiseLord
Ещё раз...

Код: Выделить всё

b^b=Key;
Что вы хотите с этим сделать? В любом языке программирования присвоить что-то можно лишь переменной, но не сумме переменных, разности, произведению или любой другой операции. Вы же пытаетесь присвоить указатель Key операции "исключающее ИЛИ". А поскольку b^b всегда равно нулю, то пытаетесь этому нулю присвоить указатель Key. Что это за бред?

Код: Выделить всё

i2c_write(read=crypt());  
А тут какой байт должен улететь по I²C? Тут переменной read пытаетесь присвоить результат выполнения функции, которая ничего не возвращает, т.к. она void. А потом результат операции присваивания отправляете по шине.

Вы хотя бы в голове у себя представьте, что хотите сделать. А уже потом в виде кода это реализовывать начинайте.

Re: CodeVision AVR в вопросах и ответах

Добавлено: Пн авг 01, 2016 23:17:11
Vov123

Код: Выделить всё

Key[X]=b^b;

Re: CodeVision AVR в вопросах и ответах

Добавлено: Вт авг 02, 2016 06:05:03
kotriks
это код который я пытаюсь востановить, забыл как было но помню, что было как то так b^b=Key; либо b+b=^Key; но не так не так не компилиться, вообще нужно взять ключь из 10 символов с еепром и записать через него в i2c чтобы данные были шифрованны этим ключём XOR. как то так :)

Re: CodeVision AVR в вопросах и ответах

Добавлено: Вт авг 02, 2016 07:19:36
ARV
kotriks писал(а):забыл как было но помню, что было
если бы вы знали базовые основы Си, то проблем у вас не возникло бы (я намекал, что надо освежить знания языка - вы не обратили внимания).

в Си возможна только единственная форма записи выражения, в котором используется знак присваивания '=' - это когда левее этого знака находится только переменная, и ничего больше. поэтому оба варианта, которые вы "помните" принципиально неверны.

кроме этого, работа с массивом возможна двумя способами: либо через индексное обращение к его элементам, либо через указатель на его элементы (в сущности, это одно и то же, но для такого опытного программиста, как вы, лучше эти способы разделить). то, что записали вы - не является ни одним из перечисленных способов.

кроме того, вам сразу сказали, что функция у вас ничего не возвращает, и потому все, что она внутри себя делает, никак не может быть использовано (тем более, что написанное вами вообще не может ничего делать - оно неверно, а что надо - пока не ясно).

а теперь конкретика...
kotriks писал(а):взять ключь из 10 символов с еепром и записать через него в i2c чтобы данные были шифрованны этим ключём XOR
умение задавать вопросы - это тоже полезный опыт, который стоит освоить.
"взять ключ" - это как? ключ у вас в массиве Key, как я понимаю? как именно "записать через него" надо данные? данные - это что: байт, несколько байтов, строка или, например, long-числа?
"шифровать" вы собираетесь, как я понимаю, операцией битового XOR... вангую: каждый очередной байт, отправляемый в i2c, надо проXORить с очередным символом из массива Key - так или нет? если так, то ваш код должен быть примерно таким

Код: Выделить всё

char crypt(char data){
   static char i;
   char result = data ^ Key[i++];
   if(i >= SIZE_OF_KEY) i = 0;
   return result;
}
это, возможно, не совсем то, что хотите вы, но это однозначно будет компилироваться и на самом деле будет XORить данные... SIZE_OF_KEY - это константа, задающая размер вашего "ключа".