Страница 1 из 1
Помогите понять, CodeVisionAVR не загружает в Arduino
Добавлено: Чт мар 17, 2022 17:04:37
Shumaher
Очень странная ситуация. CodeVisionAVR не выгружает в Arduino. Есть два проекта близнеца, в одном выгружает в другом нет. Пробовал создать новый, та же история. Что это может быть? Грешу на WIN8. Предыдущий проект из под 7-ки. Не понятно. И ничего не говорит, просто ничего не происходит.
Добавлено after 4 hours 33 minutes 13 seconds:
Ещё поигрался, копирую рабочий проект, заменяю основной файл и перестаёт работать. Уже тупо скопировал текст и заменил некоторые заголовочные файлы и опять перестало работать. Мистика((
Re: Помогите понять, CodeVisionAVR не загружает в Arduino
Добавлено: Чт мар 17, 2022 18:42:22
BOB51
А зачем CodeVisionAVR для адуринок, если есть ардуиноIDE??
Тем более, что основа ардуиноIDE С++ (допускается и простой Си но тяготеющий к авр студио - GCC)...

Re: Помогите понять, CodeVisionAVR не загружает в Arduino
Добавлено: Чт мар 17, 2022 19:34:20
Карбофос
А чё вы все так вперлись в этот кодвижнавр? Вам пообещали x3 быстродействие? На той-же тактовой? Так не бывает.
Какие-то старые nano только 57600 понимали, uno 115200, в чем между ними разница хз.
Может, загрузчик из новой версии IDE обновить?
Re: Помогите понять, CodeVisionAVR не загружает в Arduino
Добавлено: Пт мар 18, 2022 09:19:31
BOB51
У "стандартных" нанок было две версии бутлоадера, устанавливаемого при изготовлении.
Какой конкретно в конкретной платке - смотреть самостоятельно надо.
Но актуально это только для перепрограммирования через бутлоадер.
Оба варианта бутлоадера можно прошить через ISP из-под самой IDE.

Re: Помогите понять, CodeVisionAVR не загружает в Arduino
Добавлено: Пт мар 18, 2022 09:27:50
Shumaher
[uquote="Карбофос",url="/forum/viewtopic.php?p=4200085#p4200085"]А чё вы все так вперлись в этот кодвижнавр? Вам пообещали x3 быстродействие? На той-же тактовой? Так не бывает.
Какие-то старые nano только 57600 понимали, uno 115200, в чем между ними разница хз.
Может, загрузчик из новой версии IDE обновить?[/uquote]
Извините, проблема в другом. Он мне кажется удобным. Посоветуйте IDE с выгрузкой в Ардуино.
Re: Помогите понять, CodeVisionAVR не загружает в Arduino
Добавлено: Пт мар 18, 2022 09:37:59
BOB51
АрдуиноIDE 1.8.19
Любая IDE генерирующая интел хекс8 для МК при последующей загрузке через программатор через ISP.
Однако... следует учитывать установленные в адуринке при изготовлении комплекты фузов и бутлоадер.
Или переустанавливать их самостоятельно вручную под текущий проект.

Re: Помогите понять, CodeVisionAVR не загружает в Arduino
Добавлено: Пт мар 18, 2022 10:00:55
Shumaher
[uquote="BOB51",url="/forum/viewtopic.php?p=4200279#p4200279"]АрдуиноIDE 1.8.19
Любая IDE генерирующая интел хекс8 для МК при последующей загрузке через программатор через ISP.
Однако... следует учитывать установленные в адуринке при изготовлении комплекты фузов и бутлоадер.
Или переустанавливать их самостоятельно вручную под текущий проект.

[/uquote]
Это понятно, мне нравилось через USB выгружать. Только расслабился с программаторами). А тут такая непонятка. И она действительно зависит от самого содержимого программы. Буду дальше копать.
Да нет ребята, фигня какая то, просто копирую текст в исходники и трындец. Даже не компилируется. Я маму....
Ну похоже это баг винды и AD. Я давно 8ку ненавижу аж спать не могу. Права слетают.
Re: Помогите понять, CodeVisionAVR не загружает в Arduino
Добавлено: Пт мар 18, 2022 12:16:43
BOB51
Копирование исходников тоже свои хитрости имеет...

Re: Помогите понять, CodeVisionAVR не загружает в Arduino
Добавлено: Вс мар 20, 2022 23:06:02
Карбофос
Shumaher писал(а):просто копирую текст в исходники и трындец. Даже не компилируется
Чудесно.
Вот бы уехать к вам.
А откуда вы?
Re: Помогите понять, CodeVisionAVR не загружает в Arduino
Добавлено: Пн мар 21, 2022 08:33:26
Dimon456
К примеру, что первое попалось:
avr-gcc
Спойлер
Код: Выделить всё
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/pgmspace.h>
#include <util/delay.h>
typedef struct{
volatile uint8_t * port;
uint8_t and;
uint8_t or;
} seg_pin_t;
#define pn(p,b) {&PORT ## p, ~_BV(b), _BV(b)}
#define A _BV(0)
#define B _BV(1)
#define C _BV(2)
#define D _BV(3)
#define E _BV(4)
#define F _BV(5)
#define G _BV(6)
#define H _BV(7)
#define DIG0 (A+B+C+D+E+F)
#define DIG1 (B+C)
#define DIG2 (A+B+G+E+D)
#define DIG3 (A+B+C+D+G)
#define DIG4 (B+F+G+C)
#define DIG5 (A+F+G+C+D)
#define DIG6 (A+C+D+E+F+G)
#define DIG7 (A+B+C)
#define DIG8 (A+B+C+D+E+F+G)
#define DIG9 (A+B+C+D+F+G)
const __flash seg_pin_t pins[8] = {
pn(B,0),
pn(C,0),
pn(D,0),
pn(B,2),
pn(C,2),
pn(D,2),
pn(B,4),
pn(C,4)
};
const __flash seg_pin_t commons[4] = {
pn(D,1),
pn(D,4),
pn(B,1),
pn(C,1)
};
uint8_t scr[4] = {DIG5,DIG2,DIG3,DIG4};
ISR(TIMER0_OVF_vect){
static uint8_t com;
const __flash seg_pin_t *p = commons+com;
*p->port &= p->and;
if(++com >= 4) com = 0;
uint8_t d = scr[com];
d = ~d;
p = pins;
for(uint8_t i=0; i<8; i++, d>>=1){
*p->port = (*p->port & p->and) | (d & 1 ? p->or : 0);
p++;
}
p = commons+com;
*p->port |= p->or;
}
int main(void){
DDRB = 255;
DDRC = 255;
DDRD = 0x7F;
PORTD = 0x80;
TCCR0 = 4;
TIMSK = _BV(TOIE0);
sei();
while(1);
}
Код: Выделить всё
AVR Memory Usage
----------------
Device: atmega16
Program: 432 bytes (2.6% Full)
(.text + .data + .bootloader)
Data: 5 bytes (0.5% Full)
(.data + .bss + .noinit)
cvavr
Спойлер
Код: Выделить всё
#include <mega16.h>
// Declare your global variables here
#define uint8_t unsigned char
typedef struct {
volatile uint8_t * port;
uint8_t and;
uint8_t or;
} seg_pin_t;
#define pn(p,b) {&PORT ## p, ~_BV(b), _BV(b)}
#define _BV(bit) (1 << (bit))
#define A _BV(0)
#define B _BV(1)
#define C _BV(2)
#define D _BV(3)
#define E _BV(4)
#define F _BV(5)
#define G _BV(6)
#define H _BV(7)
#define DIG0 (A+B+C+D+E+F)
#define DIG1 (B+C)
#define DIG2 (A+B+G+E+D)
#define DIG3 (A+B+C+D+G)
#define DIG4 (B+F+G+C)
#define DIG5 (A+F+G+C+D)
#define DIG6 (A+C+D+E+F+G)
#define DIG7 (A+B+C)
#define DIG8 (A+B+C+D+E+F+G)
#define DIG9 (A+B+C+D+F+G)
flash const seg_pin_t pins[8] = {
pn(B,0),
pn(C,0),
pn(D,0),
pn(B,2),
pn(C,2),
pn(D,2),
pn(B,4),
pn(C,4)
};
flash const seg_pin_t commons[4] = {
pn(D,1),
pn(D,4),
pn(B,1),
pn(C,1)
};
uint8_t scr[4] = {DIG5,DIG2,DIG3,DIG4};
// Timer 0 overflow interrupt service routine
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{ uint8_t d; uint8_t i;
static uint8_t com;
flash const seg_pin_t *p = commons+com;
*p->port &= p->and;
if(++com >= 4) com = 0;
d = scr[com];
d = ~d;
p = pins;
for(i=0; i<8; i++, d>>=1){
*p->port = (*p->port & p->and) | (d & 1 ? p->or : 0);
p++;
}
p = commons+com;
*p->port |= p->or;
}
void main(void)
{
DDRB = 255;
DDRC = 255;
DDRD = 0x7F;
PORTD = 0x80;
TCCR0 = 4;
TIMSK = _BV(TOIE0);
#asm("sei")
while(1);
}
Код: Выделить всё
Program size: 254 words (508 bytes), 3,1% of FLASH
11 words (22 bytes), 4,2% reduced by Code Compression
Re: Помогите понять, CodeVisionAVR не загружает в Arduino
Добавлено: Пн мар 28, 2022 10:28:32
Shumaher
[uquote="BOB51",url="/forum/viewtopic.php?p=4200334#p4200334"]Копирование исходников тоже свои хитрости имеет...

[/uquote]
В общем на этом проекте он рожал не корректный файл .epp из за того, что переменные не были инициализированы при объявлении.
То есть что, это считается обязательным?
Re: Помогите понять, CodeVisionAVR не загружает в Arduino
Добавлено: Пн мар 28, 2022 10:49:36
BOB51
У каждого компилятора (или того же шпротеуса) свои правила.
Их вычитывать надо весьма внимательно и долго

Re: Помогите понять, CodeVisionAVR не загружает в Arduino
Добавлено: Пн мар 28, 2022 21:13:37
Dimon456
Shumaher писал(а):То есть что, это считается обязательным?
Нет, необязательным.
А для шпротеуса не достаточно просто подкинуть файлик .epp, нужно еще выполнить Debug -> Reset persistent model data.
И .epp шпротеус не принимает, нужен бинарник, бинарник делается с помощью средств cvavr Run the chip programmer, File load eeprom, выбрать тип .epp, File save eeprom, выбрать тип .bin, потом в шпротеусе скармливаем наш .bin файлик, выполняем Debug -> Reset persistent model data, запускаем отладку, выбираем Debug -> AVR -> Eprom memory и любуемся происходящим.
Re: Помогите понять, CodeVisionAVR не загружает в Arduino
Добавлено: Чт май 05, 2022 16:42:33
PE4ENbKA_173
[uquote="BOB51",url="/forum/viewtopic.php?p=4200057#p4200057"]Тем более, что основа ардуиноIDE С++ (допускается и простой Си но тяготеющий к авр студио - GCC)...

[/uquote]
Не соглашусь с этим утверждением. Попытка использовать классы а не структуры привела к сообщению что АВР мк не поддерживает с++ языки. Основа может и С++ но для работы не с АВР
Re: Помогите понять, CodeVisionAVR не загружает в Arduino
Добавлено: Пт май 06, 2022 21:04:53
BOB51
Это относительно компилятора ардуиноIDE классы не применяются?...
Или относительно того компилятора, что в АВР студио имеется?
За АВР/микрочип студио компилятор не скажу - не пользовался, а вот у ардуиноIDE основной вариант самодельных библиотек именно в виде классов делается.
В то же время и Си вариант вполне работоспособен (единственно файлы также с расширением *.cpp использовать надо).
Как сам компилятор устроен и дополнительные настройки - это уже больше специалистов глубокозакопания интерес.
На практике и того что есть вполне достаточно для перекрытия большинства практических задач.

Re: Помогите понять, CodeVisionAVR не загружает в Arduino
Добавлено: Пт май 06, 2022 21:11:47
Alex_641
А коде вижион и ардуино , чем связаны ?
Re: Помогите понять, CodeVisionAVR не загружает в Arduino
Добавлено: Пт май 06, 2022 21:19:12
BOB51
Вероятно только загрузчиком *.hex файла программы.
Или второй вариант - взята платка адуринки, но программа разрабатывается и компилируется в CodeVisionAVR.
Только вот в этом случае саму программу и прошивку надо делать также по правилам CodeVisionAVR через ISP да предварительно удалив штатный бутлоадер ардуинки, дабы не создавал лишних проблем.

Re: Помогите понять, CodeVisionAVR не загружает в Arduino
Добавлено: Сб май 07, 2022 14:11:37
Dimon456
BOB51 писал(а):Только вот в этом случае саму программу и прошивку надо делать также по правилам CodeVisionAVR через ISP да предварительно удалив штатный бутлоадер ардуинки,
Ерунду не несите.
https://youtu.be/qRG39L_sCJc