Обсуждаем контроллеры компании Atmel.
Ответить

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

Ср фев 16, 2022 17:42:46

проще... но не интересно... и самое главное - не эффективно))

зачем вообще писать библиотеки для UART ? Это же простейший интерфейс))

1.
открываем cvavr
выбираем чип
выбираем частоту чипа
Screenshot_1.jpg
(75.26 KiB) Скачиваний: 168

2.
выбираем режим работы UART
Screenshot_2.jpg
(84.72 KiB) Скачиваний: 157

3.
нажимаем сгенерировать новый проект
куда сохранить проект
имя проекта
Screenshot_3.jpg
(81.5 KiB) Скачиваний: 140

4.
cvavr сгенерировал сам код для UART ))
Screenshot_4.jpg
(106.91 KiB) Скачиваний: 155

5.
вот функция прерывания... cvavr сгенерировал сам
Screenshot_5.jpg
(103.74 KiB) Скачиваний: 152

6.
вот режим работы UART... cvavr сгенерировал сам

Добавлено after 2 minutes 57 seconds:
Screenshot_6.jpg
(94.79 KiB) Скачиваний: 145

7.
или вот без прерываний...
Screenshot_7.jpg
(114.17 KiB) Скачиваний: 140

8.
вот режим работы UART...
Screenshot_8.jpg
(94 KiB) Скачиваний: 142

9.
и т.д. и т.п.))

cvavr ВСЁ сгенерировал сам ))
:tea:

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

Ср фев 16, 2022 23:42:40


Доброго времени суток. Помогите адоптировать кусочек кода под CodeVision. 

Начну из далека. На сайте есть проэкт "БП с микроконтроллерным управлением и регулировкой параметров при помощи энкодера."  есть исходники написаные в CodeVision.Используется экранчик bc1602. А мне бы хотелось в этом пролэкте использовать графический lcd  на на st7567.....нашол код под него но он написан в avr studio .

В CodeVision он не работает.....компилируется и т.д но экран не реагирует.......

Кто подскажет где собака зарыта?


Я бы так сделал

CodeVision




 

 

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

Пн фев 28, 2022 16:23:52

Не с того не с сего перестал работать CVAVR версии 3.12, пропали все кнопки ( или как они там называются), в основном окне только окно с программой и то маленького размера. Переустановка не помогла, антивирусник ничего не нашёл... Может было такое у кого нить?
Изображение

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

Вс мар 13, 2022 20:44:24

и компилятор ругается что я что то не так объявляю. что не так не могу понять

Попробуйте другое название функции придумать.

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

Пн апр 25, 2022 19:33:17

Всем доброго времени суток. Нужна помощь есть архив для CodeVision AVR1.24.7
http://gornvasiliy.narod.ru/schrulle_a1.htm
в конце архив в строке:

Проект, исходный текст, прошивка для CodeVisionAVR1.24.7 здесь

Сам с CodeVision пока никак, уровень могу прошить AVR на программаторе tl866. Просьба, нужен HEX или BIN и как поставить фьюзы.
У меня не получается устройство работает, но не правильно.
Последний раз редактировалось foxmikola Вт апр 26, 2022 08:03:11, всего редактировалось 3 раз(а).

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

Вс май 08, 2022 12:45:39

Сам с CodeVision пока никак, уровень могу прошить AVR на программаторе tl866. Просьба, нужен HEX или BIN и как поставить фьюзы.
У меня не получается устройство работает, но не правильно.


HEX есть в архиве, прошивайте удобным вам методом. Фьюзы - выставить на работу от внутренего генератора на 8 МГц.

Добавлено after 17 minutes 55 seconds:
Всем доброго дня!
Поставил себе задачу впихнуть в ATTiny13A программу сбора показаний с нескольких DS18b20 и передачу из по UART.
Помощник CVAVR сделал все необходимые первичные настройки, активировал 1-wire и тд, но даже без UARTa компилятор ругается на недостаток RAM (Linker error: global RAM variables size: 81 bytes is too large) ! Я просто выхожу из мастера генерации кода и пробую всё собрать!


Честно сказать, я в замешательстве, ведь у многих работает (судя по статьям в интернете), правда все делают для одного датчика...
У меня задача использовать несколько, максимально возможное количество.

Попробовал уменьшить дефайн MAX_DS1820 ... при "2" - проект собирается:

Может какие настройки в компиляторе нужно сделать?

Пустая программа, которая не помещается:


UPD: думаю мне понятно... 9 bytes are used for each device ... 8 устройств Х 9 байт = 72 байта, что уже больше 64 имеющихся в Тиньке...

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

Вс май 08, 2022 13:23:40

Из этой части кода, которым поделились, оптимизацию памяти вероятно сделать невозможно. Код, предложенный в компиляторе, часто является примерным и не оптимизированным (для памяти). Он часто универсален. Нужно переделывать (по возможности) код в других файлах. Например, почему данные всех датчиков хранятся в памяти? Выполнить действия с одним, определиться с результатом и загрузить в память другое. Максимум для сохранения: текущих температур как окончательный результат (но для этого тоже нужен объем памяти). И лично: зачем нужен такой минималистичный вариант? Лучше замените контроллер. Нет даже место запускать ни один алгоритм статистической обработки данных, хоть усреднение, хоть moving average ... о более сложных алгоритми просто нет смысла думать. И в конце: показания температуры будут колебаться +/-x.xx, что не связано с физическим процессом.

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

Вс май 08, 2022 13:30:54

Из этой части кода, которым поделились, оптимизацию памяти вероятно сделать невозможно. Код, предложенный в компиляторе, часто является примерным и не оптимизированным для памяти. Нужно переделывать (по возможности) код в других файлах. Например, почему данные всех датчиков хранятся в памяти? Выполнить действия с одним, определиться с результатом и загрузить в память другое. Максимум для сохранения: текущих температур как окончательный результат (но для этого тоже нужен объем памяти). И лично: зачем нужен такой минималистичный вариант? Лучше замените контроллер. Нет даже место запускать ни один алгоритм статистической обработки данных, хоть усреднение, хоть moving average ...

Да, посмотрел в сторону Тини85 - размер тот же, возможностей намного больше. И цена та же...
На счёт - зачем хранить - судя по всему, основной объём занимает хранение ROM-кодов датчиков (те самые 9 байт на датчик). А без их хранения - получится ли их все опрашивать? Пока не понял. В любом случае - выбор в пользу тини85 даёт прирост в ОЗУ до 512 Байт. Всё поместится.

Теперь стала задача сделать программный UART, ибо не доглядел, что аппаратного там нет...

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

Вс май 08, 2022 13:46:47

... основной объём занимает хранение ROM-кодов датчиков (те самые 9 байт на датчик).

Можно сделать функцию: считать датчик (возвращает, например, уже считанную текущую температуру) и применить ко всем датчикам. Таким образом, промежуточные результаты чтения регистров не будут постоянно сохраняться. При необходимости сохраните только уже считанные температуры с каждой датчик (8 штук * 2 байт).

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

Вс июл 17, 2022 07:04:02

У блока USART есть три прерывания окончание приема, окончание передачи и опустошение буфера.
Но в CV доступны только первые два. Это нормально или как то можно третье прерывание завести?

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

Пн июл 25, 2022 12:25:45

Есть ли возможность в CVAVR встроенными средствами разместить flash константу по фиксированному адресу?

Придумал пока использовать asm вставку:
Код:
// область глобальных переменных в отдельном С-файле:
#asm
.cseg
.org 8000 // адрес
.db 0x64 // константа
#endasm


Код:
// В main:
OSCCAL = *((volatile flash uint8_t *) OSCCAL_CONST_ADRESS);


Проблема в том что компилятор дальше пытается разместить за этой константой блок данных или код из других файлов, который вылезает далеко за пределы флеш Atmega168. При этом в середине флеш оказывается свободна. То есть решение не является правильным.

В Keil MDK или GCC для этого я создавал scatter-файл или скрипт линкера где делал собственные сегменты и назначал в таких сегментах нужные мне константы.

А как делают в Codevision?

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

Пн июл 25, 2022 13:34:35

а зачем, если не секрет?

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

Пн июл 25, 2022 21:24:37

ARV писал(а):а зачем, если не секрет?


1. Калибровка RC генератора. Вам наверно известно что при запуске загружается значение в OSCCAL для 1МГц(Например Atmega8 и др.). Для 8МГц надо считать программатором константу и записать в флеш или еепром. Дело не очень хлопотное когда программируется только 1 устройство. Можно и программу пересобрать. А когда 10-100 штук? А когда приходит время исправлений или обновлений, адреса калибровок начинают съезжать. Это лишний источник ошибок.
2. Работа с бутлоадером. Для этого надо разместить функции и блоки данных по фиксированным адресам.
3. Эмуляция еепром во флеш памяти. Надо назначать переменным адреса страниц не пересекающиеся с адресами кода.

Конечно, 2 и 3 сегодня уже не сильно актуально для авр. Но 3 вариант лично использовал на Stm без собственной еепром.

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

Сб дек 17, 2022 16:34:26

Доброго всем вечера прошу помощи. Перестал работать интерфейс.
....
Основное окно Codevision замораживается, пропадают все кнопки. Просто серое окно.. Работает только выход, свернуть или закрыть программу с несохраненными данными по по нажатию кнопок сверху слева на окне.
CAVR 3.12, 3.14, Windows 8 64 бит.

Пробовал на разных версиях везде одно и тоже. Поставил на другой комп все работает.
НЕ могу понять где искать.

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

Сб дек 17, 2022 17:47:37

У меня такое же было недавно, сын что то сделал - заработало.

Добавлено after 3 minutes 23 seconds:
Вроде бы какие то файлы из какой то папки самой кавр удалял....

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

Сб дек 17, 2022 18:46:55

Теперь осталось выяснить с какой папки и какие файлы)

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

Сб дек 17, 2022 19:13:43

https://forum.easyelectronics.ru/viewto ... 14&t=24303

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

Сб дек 17, 2022 22:49:23

Попробую. Но в Вашем примере хотя-бы окна видны и кнопки меню. У меня просто серое окно.
Доберусь через пару часов до компа проверю. Надеюсь сработает.

Добавлено after 2 hours 57 minutes 22 seconds:
УУУРРААА!!! Работает!!!!
Нужно было удалить файлы из папки c:\ProgramData\HP InfoTech\CodeVisionAVR\

Спасибо НКВД!!!

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

Пт янв 13, 2023 19:35:27

Вылазит 2 ошибки. В чем я ошибся? Как сделать правильно?

Код:
var.h(4), #included from: lern.c: '(' expected
var.c(1): '(' expected


var.h
Код:
#ifndef H_VAR
    #define H_VAR
 
    extern uint8_t i;
 
#endif


var.c:
Код:
uint8_t i = 8;


lern.c
Код:
#include <mega8.h>
#include "var.h"

void main(void)
{

...

while (1)
      {
      // Place your code here

      }
}

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

Пт янв 13, 2023 20:29:06

В var.c только одна строчка? Ни var.h не инклюдится, ни stdint.h?
Ответить