портативный AVR Code Vision (для быстрого создания прог с мастером)

selevo
selevo аватар
Offline
Зарегистрирован: 21.12.2013

https://vk.com/izhadapter?w=wall-73481857_311%2Fall

 после создания

в   arduino IDE нужно вставить  текст получившейся программы  начиная  с фразы:

// Input/Output Ports initialization

и заканчивая  строчкой  перед командой:

while (1)

В мастере указать  процессор: atmega328p для ARDUINO UNO

selevo
selevo аватар
Offline
Зарегистрирован: 21.12.2013

У кого  фаирвол  аутпост,при запуске отключить защиту. Запускать файл RUN.exe в папке  bin

на ютубе   есть  уроки  работы  с мастером настройки  портов   ШИМ SPI LCD1602 DS18B20 и ещё куча всякой периферии.

вот нашёл  поиском в три клика

https://www.youtube.com/watch?v=SHrLLYdk5IU&list=PLNwLQAtGX2KCydUNZbwyvTRP00U82Ot2X&index=2

 

selevo
selevo аватар
Offline
Зарегистрирован: 21.12.2013

вот пример настройки  6 ти каналов  ШИМ, текст который выдал мастер:

/*****************************************************
This program was produced by the
CodeWizardAVR V2.05.3 Standard
Automatic Program Generator
© Copyright 1998-2011 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com

Project : 
Version : 
Date    : 14.11.2016
Author  : 
Company : 
Comments: 


Chip type               : ATmega328P
Program type            : Application
AVR Core Clock frequency: 16,000000 MHz
Memory model            : Small
External RAM size       : 0
Data Stack size         : 512
*****************************************************/

#include <mega328p.h>

// Declare your global variables here

void main(void)
{
// Declare your local variables here

// Crystal Oscillator division factor: 1
#pragma optsize-
CLKPR=0x80;
CLKPR=0x00;
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif

// Input/Output Ports initialization
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=Out Func2=Out Func1=Out Func0=In 
// State7=T State6=T State5=T State4=T State3=0 State2=0 State1=0 State0=T 
PORTB=0x00;
DDRB=0x0E;

// Port C initialization
// Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
// State6=T State5=T State4=T State3=T State2=T State1=T State0=T 
PORTC=0x00;
DDRC=0x00;

// Port D initialization
// Func7=In Func6=Out Func5=Out Func4=In Func3=Out Func2=In Func1=In Func0=In 
// State7=T State6=0 State5=0 State4=T State3=0 State2=T State1=T State0=T 
PORTD=0x00;
DDRD=0x68;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: 15,625 kHz
// Mode: Fast PWM top=OCR0A
// OC0A output: Non-Inverted PWM
// OC0B output: Non-Inverted PWM
TCCR0A=0xA3;
TCCR0B=0x0D;
TCNT0=0x00;
OCR0A=0x00;
OCR0B=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: 15,625 kHz
// Mode: Fast PWM top=OCR1A
// OC1A output: Non-Inv.
// OC1B output: Non-Inv.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0xA3;
TCCR1B=0x1D;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: 15,625 kHz
// Mode: Fast PWM top=OCR2A
// OC2A output: Non-Inverted PWM
// OC2B output: Non-Inverted PWM
ASSR=0x00;
TCCR2A=0xA3;
TCCR2B=0x0F;
TCNT2=0x00;
OCR2A=0x00;
OCR2B=0x00;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// Interrupt on any change on pins PCINT0-7: Off
// Interrupt on any change on pins PCINT8-14: Off
// Interrupt on any change on pins PCINT16-23: Off
EICRA=0x00;
EIMSK=0x00;
PCICR=0x00;

// Timer/Counter 0 Interrupt(s) initialization
TIMSK0=0x00;

// Timer/Counter 1 Interrupt(s) initialization
TIMSK1=0x00;

// Timer/Counter 2 Interrupt(s) initialization
TIMSK2=0x00;

// USART initialization
// USART disabled
UCSR0B=0x00;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
ADCSRB=0x00;
DIDR1=0x00;

// ADC initialization
// ADC disabled
ADCSRA=0x00;

// SPI initialization
// SPI disabled
SPCR=0x00;

// TWI initialization
// TWI disabled
TWCR=0x00;

while (1)
      {
      // Place your code here

      }
}

 

 выделяем   нужное...

Кстати,выделынный кусок помещаем в void setup()

{

здесь  код  настройки который  вытолько что скопировали

}

 

и в итоге  рабочий код в Arduino IDE будет выглядеть так:

// Declare your global variables here


// Declare your local variables here

// Crystal Oscillator division factor: 1
void setup() 
{

// Input/Output Ports initialization
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=Out Func2=Out Func1=Out Func0=In 
// State7=T State6=T State5=T State4=T State3=0 State2=0 State1=0 State0=T 
PORTB=0x00;
DDRB=0x0E;

// Port C initialization
// Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
// State6=T State5=T State4=T State3=T State2=T State1=T State0=T 
PORTC=0x00;
DDRC=0x00;

// Port D initialization
// Func7=In Func6=Out Func5=Out Func4=In Func3=Out Func2=In Func1=In Func0=In 
// State7=T State6=0 State5=0 State4=T State3=0 State2=T State1=T State0=T 
PORTD=0x00;
DDRD=0x68;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: 15,625 kHz
// Mode: Fast PWM top=OCR0A
// OC0A output: Non-Inverted PWM
// OC0B output: Non-Inverted PWM
TCCR0A=0xA3;
TCCR0B=0x0D;
TCNT0=0x00;
OCR0A=0x00;
OCR0B=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: 15,625 kHz
// Mode: Fast PWM top=OCR1A
// OC1A output: Non-Inv.
// OC1B output: Non-Inv.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0xA3;
TCCR1B=0x1D;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: 15,625 kHz
// Mode: Fast PWM top=OCR2A
// OC2A output: Non-Inverted PWM
// OC2B output: Non-Inverted PWM
ASSR=0x00;
TCCR2A=0xA3;
TCCR2B=0x0F;
TCNT2=0x00;
OCR2A=0x00;
OCR2B=0x00;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// Interrupt on any change on pins PCINT0-7: Off
// Interrupt on any change on pins PCINT8-14: Off
// Interrupt on any change on pins PCINT16-23: Off
EICRA=0x00;
EIMSK=0x00;
PCICR=0x00;

// Timer/Counter 0 Interrupt(s) initialization
TIMSK0=0x00;

// Timer/Counter 1 Interrupt(s) initialization
TIMSK1=0x00;

// Timer/Counter 2 Interrupt(s) initialization
TIMSK2=0x00;

// USART initialization
// USART disabled
UCSR0B=0x00;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
ADCSRB=0x00;
DIDR1=0x00;

// ADC initialization
// ADC disabled
ADCSRA=0x00;

// SPI initialization
// SPI disabled
SPCR=0x00;

// TWI initialization
// TWI disabled
TWCR=0x00;
}



Клапауций 234
Offline
Зарегистрирован: 24.10.2016

в чём суть действа? - где-то что-то улучшается?

selevo
selevo аватар
Offline
Зарегистрирован: 21.12.2013

убыстряется  работа и запуск некоторых проектов

Особенно  тех которые  используют прямое управление регистрами

как например  6 ШИМ

без analogwrite а напрямую через регистры OCR0A OCR1A OCR2A

работать будет не всё так как библиотеки  свои у codevision например для экранов, датчиков

Тут главное  настройка  регистров  и портов

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

selevo пишет:

убыстряется  работа и запуск некоторых проектов

Не понял чем оно "убыстряется".  Зато понял, что в ближайшем будущем люди, не отличающие digitalWrite от goto будут генерить этим мастером куски кода на 6 ШИМ в которых понимают чуть меньше, чем ничего, а потом будут приходить сюда и говорить "я тут написал, вроде работает, помогите подправить, чтобы то, что мне надо делала" :)

selevo
selevo аватар
Offline
Зарегистрирован: 21.12.2013

Тебе-то какое дело ? ))  Тебя никто никчему необязывает,расслабся,я разрешаю, может эту команду надо было дать. Вот я,мне было интересно и нужно, зделал.

А чё там кто зачем... Люди взрослые, голова есть.

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Т.е. объяснения в чём состоит "убыстрение" не будет? Будет только хамство? Ну, ладно, и на том спасибо.

gena
Offline
Зарегистрирован: 04.11.2012

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

_mikka
Offline
Зарегистрирован: 01.11.2015

Не запускается, просит ключ активации

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

_mikka пишет:

Не запускается, просит ключ активации

О-о-о. так это ещё и коммерческая реклама.

selevo
selevo аватар
Offline
Зарегистрирован: 21.12.2013

попробуй отключить все антивирусы  фаирволы

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

 

Проверил в виртуальной голой win XP под virtual box и в реальной  (у меня win XP стоит)

Xumuk
Xumuk аватар
Offline
Зарегистрирован: 03.03.2016

тоесть с тем же успехом можно взять код настроек  с  кодевижн перекопировать из main в setup и вуаля

Andrey12
Andrey12 аватар
Offline
Зарегистрирован: 26.12.2014

_mikka пишет:

Не запускается, просит ключ активации

О как, а если запустится думаю будет просить код разблокировки по СМС потом :-)

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

Напоминает анекдот - я начинающий таджикский программист, пишу вирусы, если вы получили это письмо пожалуйста удалите все файлы с компьютера, очистите корзину. Не судите строго это мой первый вирус.

selevo
selevo аватар
Offline
Зарегистрирован: 21.12.2013

Различные подозрительности, страхи и паника могут послабляться  виртаульными машинами. Они ставятся  быстро и просто, вдруг кто не знал,на всякий случай сказал.

Клапауций 234
Offline
Зарегистрирован: 24.10.2016

selevo пишет:

Различные подозрительности, страхи и паника могут послабляться  виртаульными машинами. Они ставятся  быстро и просто, вдруг кто не знал,на всякий случай сказал.

та, да - затем виртуальная машина заразила всю сеть домашних компов и они майнят кому-то биткоины.

selevo
selevo аватар
Offline
Зарегистрирован: 21.12.2013

лохов то сколько набежало )))