AVR studio в вопросах и ответах

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

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

Сообщение FreshMan »

ARV, я именно так и поступил :))
вылез еще один баг проги
при компиляции и прошивке одного и того же проэкта из под студии и из под eclipse я получаю разные результаты, хотя и там и там оптимизация отключена
после прошивки из под студии в роботе оборудования я замечаю баг, а вот eclipse и 6-я студия выдает чистый результат
в чем может быть загвоздка ?
Tell Me The Truth
Реклама
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

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

Сообщение ARV »

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

Мой уютный бложик... заходите!
Реклама
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

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

Сообщение FreshMan »

ARV писал(а):хотя бы фотографию
вот
Спойлер

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

/*
 * Timer 1  используется как источник времени
 * в часах 6 штук газоразрядных индикаторов
 *
 * динамическая индикация организована на таймере Т2
 * данный таймер работает в режиме Fast PWM с частотой .......
 * в сравнении мы выводим нужную нам цифру на К155ИД1 и зажигаем анод требуемой лампы
 * в переполнении мы выключаем выходы К155ИД1 и тушим все лампы
 * изменяя значение которое мы заносим в OCR2 (регистр сравнения таймера Т2) мы изменяем время
 * срабатывания прерывания "по совпадению" и тем самым регулируем яркость соответствующей лампы
 */

#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>

#define AnodRazryda5 (PORTD|=(1<<3)) // анаод газоразрядного индикатора, десятки часов
#define AnodRazryda4 (PORTD|=(1<<4)) // анаод газоразрядного индикатора, единици часов
#define AnodRazryda3 (PORTB|=(1<<6)) // анаод газоразрядного индикатора, десятки минут
#define AnodRazryda2 (PORTB|=(1<<7)) // анаод газоразрядного индикатора, еденици минут
#define AnodRazryda1 (PORTB|=(1<<4)) // анаод газоразрядного индикатора, десятки секунд
#define AnodRazryda0 (PORTB|=(1<<5)) // анаод газоразрядного индикатора, еденици секунд

#define TurnOff_Nixie() {PORTB=0x0A, PORTD&= ~(1<<4 | 1<<3);} // закрываем анодные ключи ламп и выключаем выходы
                                                              // дешифратора К155ИД1 подавая на его вход
                                                              // код "А" (шестнадцатеричная система)

//#define Input_Decoder(x) {PORTB = (PORTB & 0xF6) | ((x)&1) | (((x)&2)<<2), PORTC = (PORTC & 0xFD) | (((x)&4)<<1), PORTD = (PORTD & 0xFD) | (((x)&8)<<1);}
#define Input_Decoder(x) {PORTB = (PORTB & 0xF6) | ((x)&1) | (((x)&2)<<2);\
	                      PORTC = (PORTC & 0xFD) | (((x)&4)>>1);\
	                      PORTD = (PORTD & 0xFD) | (((x)&8)>>2);}

#define button_1 (PIND&(1<<5))
#define button_2 (PIND&(1<<6))
#define button_3 (PIND&(1<<7))

#define drebezg 10
#define ChangeOfNumbers 300
//#define stop 700
#define time_blink 240

//uint8_t mode;
unsigned char mode=2;
unsigned char second;
unsigned char minute;
unsigned char hour;
unsigned char minuteAlarm;
unsigned char HourAlarm;

volatile unsigned char flag;
volatile unsigned char flg;
volatile unsigned char metka;
volatile unsigned char number;
volatile unsigned char flagSS;
unsigned int counter;
unsigned int cnt_timer;
volatile unsigned char var;
volatile unsigned char t=2;
volatile unsigned char t0;
volatile unsigned char t1;
//volatile unsigned char iocr=25;
//volatile unsigned char iocr1=50;
volatile unsigned char iocr=0;
volatile unsigned char iocr1=13;
volatile unsigned char fl=0;
volatile unsigned char fl1=0;
volatile unsigned char flag1=0;
volatile unsigned char fll=0;

unsigned char fr[6];  // какой разряд изменил значение
unsigned char Screen[6]; // массив экрана, сюда мы храним старое значение времени
unsigned char TimeScreen[6];  // массив временного экрана, сюда мы пишем "новоиспеченную" цифру
unsigned char BrightnessOldNumber[6]={10,10,10,10,10,10};// буфер временного хранения яркостей для каждого разряда СТАРОЙ цифры
unsigned char BrightnessNewNumber[6]={250,250,250,250,250,250};// буфер временного хранения яркостей для каждого разряда НОВОЙ цифры


unsigned char psc[26]={10,30,50,70,90,110,130,150,170,190,210,230,250, // в данном массиве хранятся значения для регистра OCR2
		               250,230,210,190,170,150,130,110,90,70,50,30,10};// если  OCR2=10 то цифра будет светить по максимуму
                                                                       // если  OCR2=250 то цифра будет светить по минимуму

//uint8_t *br_0[4] = {&BrightnessOldNumber[2], &BrightnessOldNumber[3], &BrightnessNewNumber[0], &BrightnessNewNumber[1]}; // для fl1 == 0;
//uint8_t *br_1[4] = {&BrightnessNewNumber[2], &BrightnessNewNumber[3], &BrightnessOldNumber[0], &BrightnessOldNumber[1]}; // для fl1 == 1;


// Timer 1 output compare A interrupt service routine
ISR (TIMER1_COMPA_vect)  // interrupt service routine (ISR)
{
	if(++second>=60)
	{
		second=0;
		minute++;
	}

	if(minute>=60)
	{
		minute=0;
		hour++;
	}

	if(hour>=24) hour=0;

	flag=1;
	metka=1;
	cnt_timer=0;

}

/////////////////
//// ЭФФЕКТЫ ////
/////////////////

// Timer 2 overflow interrupt service routine
ISR (TIMER2_OVF_vect)                             // данное прерывание происходит с периодичностью раз в 2мс
{
	static unsigned char i;

	TurnOff_Nixie();

	if (flagSS==1) //если после смены времени выполнилась ф-ция SetScreen
    {
    	switch (mode)
    	{
//---------------------------------- эффект плавной смены -------------------------------------------------------
    		case 0: if (++counter==15)                  // если прошло 30мс
					{
						counter=0;
						iocr++;
						for (i=0; i<=5; i++)
						{
							if (fr[i]==1)               // смотрим в каком разряде изменилась цифра
							{
								BrightnessOldNumber[i]=psc[iocr];    // изменяем яркость от max до minute
							}

							if (iocr==13)               // если яркость достигла minute и цифра потухла
							{
								Screen[i]=TimeScreen[i];// выводим новое значение
							}
						}

						if (iocr>=25)
						{
							flagSS=0;
							iocr=0;
						}
					 } break;

//------------------------------------- эффект перебора -----------------------------------------------------
    		case 1: if (++counter==28)                      // если прошло 76 мс (период смены перебираемой цифры)
					{
						counter=0;
						number++;                           // меняем переборную цифру

						for (i=0; i<=5; i++)
						{
							if (fr[i]==1)                   // смотрим в каком разряде произошло изменение цифры
							{
								if (number<=9)
								{
									Screen[i]=number;       // там где было изменение начинаем делать перебор
								}
								else
								{
									Screen[i]=TimeScreen[i];// выводим новое значение
									fr[i]=0;                // сбрасываем фл
									number=0;
									flagSS=0;
								}
							}
						}
					 } break;

//--------------------------------- эффект перелива -----------------------------------------------------------

			case 2: if (++counter==15)
					{
						cnt_timer=cnt_timer+(counter*2);
						counter=0;

						if (fl1==0)
						{
							iocr1++;
							for (i=0; i<=5; i++)
							{
								if (fr[i]==1)
								{
									BrightnessNewNumber[i]=psc[iocr1];
								}
							}
						}


						if (fl1==1)
						{
							iocr++;
							for (i=0; i<=5; i++)
							{
								if (fr[i]==1)
								{
									BrightnessOldNumber[i]=psc[iocr];
								}

							}
						}

						fl1^=1;

						if (iocr>=12)
						{
							//fl=0;
							fl1=0;
							iocr=0;
							iocr1=13;
							flagSS=0;

							for (i=0; i<=5; i++)
							{
								Screen[i]=TimeScreen[i];
								BrightnessOldNumber[i]=10;
								BrightnessNewNumber[i]=250;
							}
						}
					} break;
			default: break;
    	}
    }

	if (mode!=2) // если выбран ЛЮБОЙ режим КРОМЕ перелива
	{
		OCR2=BrightnessOldNumber[t];
		if (++t>=6) t=0;
		if (++var>=6) var=0;

	}
	else       // при режиме ПЕРЕЛИВ цифр
	{
		if (fl==0)
		{
			if (++t0>=6) t0=0;
			OCR2=BrightnessNewNumber[t0];
		}
		if (fl==1)
		{
			if (++t1>=6) t1=0;
			OCR2=BrightnessOldNumber[t1];

			if(++var>=6) var=0;
		}

		fl^=1;
	}

}

/////////////////////
////  ИНДИКАЦИЯ  ////
/////////////////////

//Timer 2 output compare interrupt service routine
ISR (TIMER2_COMP_vect)
{
	if (mode!=2) // если НЕ выбран ПЕРЕЛИВ цифр
	{
		//PORTB=Screen[var];
		Input_Decoder(Screen[var]); // посылаем число на вход К155ИД1
	}
	else
	{
		//PORTB=TimeScreen[var];
		//Input_Decoder(Screen[var]); // посылаем число на вход К155ИД1
		if (fl==0) Input_Decoder(TimeScreen[var]);// если выводится НОВАЯ цифра
		if (fl==1) Input_Decoder(Screen[var]);    // если выводится СТАРАЯ цифра
	}

	switch (var)
	{
		case 0: AnodRazryda0; break; // зажигаем лампу десятков часов
		case 1: AnodRazryda1; break; // зажигаем лампу единиц часов
		case 2: AnodRazryda2; break; // зажигаем лампу десятков минут
		case 3: AnodRazryda3; break; // зажигаем лампу единиц минут
		case 4: AnodRazryda4; break; // зажигаем лампу десятков секунд
		case 5: AnodRazryda5; break; // зажигаем лампу единиц секунд

		default:break;
	}

}
//***********************************************************************************
void SetScreen (char hour, char minute, char second)
{
	static unsigned char i;

//	if (mode!=3) // если НЕ выбран обычный режим смены цифр
//	{
//		TimeScreen[0]=hour/10;
//		TimeScreen[1]=hour%10;
//		TimeScreen[2]=minute/10;
//		TimeScreen[3]=minute%10;
//		TimeScreen[4]=second/10;
//		TimeScreen[5]=second%10;
//
//
//		for (i=0; i<=5; i++)
//		{
//			if (TimeScreen[i]!=Screen[i]) //узнаём в каком разряде изменялась цифра
//			{
//				fr[i]=1;
//				//BrightnessOldNumber[i]=10;
//				//BrightnessNewNumber[i]=250;
//			}
//			else
//			{
//				fr[i]=0;
//			}
//		}
//	}
//	else
//	{
//		Screen[0]=hour/10;
//		Screen[1]=hour%10;
//		Screen[2]=minute/10;
//		Screen[3]=minute%10;
//		Screen[4]=second/10;
//		Screen[5]=second%10;
//	}
	if ((mode==2)&&(BrightnessNewNumber[0]=250))
	{
		TimeScreen[0]=hour/10;
		TimeScreen[1]=hour%10;
		TimeScreen[2]=minute/10;
		TimeScreen[3]=minute%10;
		TimeScreen[4]=second/10;
		TimeScreen[5]=second%10;

		for (i=0; i<=5; i++)
		{
			if (TimeScreen[i]!=Screen[i]) //узнаём в каком разряде изменялась цифра
			{
				fr[i]=1;
				//BrightnessOldNumber[i]=10;
				//BrightnessNewNumber[i]=250;
			}
			else
			{
				fr[i]=0;
			}
		}
	}
	else if ((mode==2)&&(BrightnessOldNumber[0]=250))
		 {
			Screen[0]=hour/10;
			Screen[1]=hour%10;
			Screen[2]=minute/10;
			Screen[3]=minute%10;
			Screen[4]=second/10;
			Screen[5]=second%10;

			for (i=0; i<=5; i++)
					{
						if (Screen[i]!=TimeScreen[i]) //узнаём в каком разряде изменялась цифра
						{
							fr[i]=1;
							//BrightnessOldNumber[i]=10;
							//BrightnessNewNumber[i]=250;
						}
						else
						{
							fr[i]=0;
						}
					}
		 }

	flag=0;  //сбрасываем флаг чтения
    flagSS=1;// флаг выполнения ф-ции SetScreen
}

//***********************************************************************************

int main(void)
{
DDRB =0b11111111;//The Port B Data Direction Registe   0-пин порта на вход               1-пин порта на выход
PORTB=0b00000000;//The Port B Data Register            1/0 - on/off pull-up resistor

DDRC= 0b00000011;
PORTC=0b00000000;

DDRD =0b00011011;
PORTD=0b11100000;


// Timer/Counter 1 initialization
TCCR1A=0x00;
TCCR1B|= 1<<CS12 | // clk/256 - делим основную частоту МК на 256 (предделидель для таймера), Clock value: 31,250 kHz
		 1<<WGM12;  // Mode: CTC top=OCR1A (сброс при совпадении с OCR1A)
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x7A;
OCR1AL=0x11;
OCR1BH=0x00;
OCR1BL=0x00;

// Timer/Counter 2 initialization
ASSR=0x00;
TCCR2|= 1 << WGM20 | 1 << WGM21 | // Fast PWM mode
	    1 << CS22;                // clk/256 - делим основную частоту МК на 256 (предделидель для таймера)
TCNT2=0x00;
OCR2=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK|= 1<<OCIE2 | // флаг разрешения прерывания по событию "совпадение" таймера/счетчика Т2
		1<<TOIE2 | // флаг разрешения прерывания по переполнению таймера/счетчика Т2
		1<<OCIE1A; // флаг разрешения прерывания по событию "сопадение А" таймера/счетчика Т2

sei (); // Global enable interrupts

 while (1)
 {


		if (flag==1)                                          // если прошла 1с
		{
			if (++metka>=9)
     		switch (mode)                                     // выбираем режим отображения времени
         	{
                case 0: SetScreen(hour,minute,second); break; // плавная смена цифр (ч:м:c)
             	case 1: SetScreen(hour,minute,second); break; // перебор цифр(ч:м:c)
             	case 2: SetScreen(hour,minute,second); break; // перелив цифр (ч:м:c)
             	case 3: SetScreen(hour,minute,second); break; // обычная смена цифр (ч:м:c)

            	default: break;
         	}
    	}



	}

}



















Tell Me The Truth
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

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

Сообщение ARV »

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

Мой уютный бложик... заходите!
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

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

Сообщение FreshMan »

ARV писал(а):в чем проблема-то?
спасибо что откликнулись :)
для того чтобы понять суть проблеммы мне надо будет целый ЭПОС написать
в двух словах это не раскажешь
Tell Me The Truth
Реклама
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

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

Сообщение ARV »

FreshMan писал(а):спасибо что откликнулись :)
для того чтобы понять суть проблеммы мне надо будет целый ЭПОС написать
в двух словах это не раскажешь
ну, в таком случае я могу вам разве что спеть или сплясать, чтобы стало легче :)))

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

Мой уютный бложик... заходите!
Реклама
Аватара пользователя
Xatrix
Сверлит текстолит когтями
Сообщения: 1296
Зарегистрирован: Ср мар 10, 2010 22:28:34
Откуда: Запад Беларуси

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

Сообщение Xatrix »

Можно ли в AVR Studio 6 сделать тип данных в 1 бит? Аналог типа данных bit в CV AVR.
Изображение
Изображение
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

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

Сообщение FreshMan »

нет, под переменную выделяется минимум 1 байт
имеется такой вариант http://www.c-cpp.ru/books/bitovye-polya
но размер кода раздувается
Tell Me The Truth
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

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

Сообщение pyzhman »

О, FreshMan, с почином! :))
Docendo discimus
Аватара пользователя
Xatrix
Сверлит текстолит когтями
Сообщения: 1296
Зарегистрирован: Ср мар 10, 2010 22:28:34
Откуда: Запад Беларуси

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

Сообщение Xatrix »

Я уже разобрался... Можно работать также, как и с портами. Взять одну переменную и использовать её биты. Только вместо PORT.. написать переменную...
Вот например условие:

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

if ((temp&(1 << 1)) != 0)
если второй бит равен 1...

Как сделать так, чтобы при нажатии и удержании кнопки код выполнился только 1 раз? Например запись в EEPROM.

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

eeprom_update_byte(&my[temp],OCR0A);
temp++;
Совсем не надо, чтобы одно значение записалось сразу в несколько ячеек массива. Не хочется использовать пустые циклы, ждущие отпускания кнопки. Или может использовать INT0..
Изображение
Изображение
Аватара пользователя
Kill17
Открыл глаза
Сообщения: 63
Зарегистрирован: Вс май 30, 2010 20:27:33
Откуда: Санкт-Петербург
Контактная информация:

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

Сообщение Kill17 »

Господа!
Подскажите, как реализовать софтовый уарт на произвольные ноги ? Как в BASCOM AVR ? Поделитесь примером, если не трудно!
Аватара пользователя
ИС-пытатель
Вымогатель припоя
Сообщения: 577
Зарегистрирован: Ср июн 19, 2013 08:10:48
Откуда: Москва, СПб, Липецк, Рязань

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

Сообщение ИС-пытатель »

Даташит прочитайте, как UART работает - думаю, не составит труда
Аватара пользователя
Kill17
Открыл глаза
Сообщения: 63
Зарегистрирован: Вс май 30, 2010 20:27:33
Откуда: Санкт-Петербург
Контактная информация:

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

Сообщение Kill17 »

ИС-пытатель писал(а):Даташит прочитайте, как UART работает - думаю, не составит труда
Я только начинаю осваивать, как прием и передача работает понимаю, а как пины поменять на нужные мне, что-то не понимаю
Аватара пользователя
ИС-пытатель
Вымогатель припоя
Сообщения: 577
Зарегистрирован: Ср июн 19, 2013 08:10:48
Откуда: Москва, СПб, Липецк, Рязань

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

Сообщение ИС-пытатель »

У управлять пинами вообще умеете?
Аватара пользователя
Kill17
Открыл глаза
Сообщения: 63
Зарегистрирован: Вс май 30, 2010 20:27:33
Откуда: Санкт-Петербург
Контактная информация:

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

Сообщение Kill17 »

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

	  ldi	temp,(1<<PB3)|(1<<PB4)           
	  out	DDRB, temp		      ;           ; настройка портов на выход PB3 и PB4

          cbi portb,4
          sbi portb,4   ; установка и снятия в 1

Правильно?

      clr   temp        ; USART: 115200, 8-N-1 
      STS   UBRR0H,temp
      ldi   temp,NB   
      STS   UBRR0L,temp
      ldi   temp,(1<<RXEN0)|(1<<TXEN0)   
      STS   UCSR0B,temp
      ldi   temp,(1<<UCSZ00)|(1<<UCSZ01)
      STS   UCSR0C,temp

putc:                                  ; передача содержимого R19 
      LDs	R16, UCSR0A
      sbrs	R16, UDRE0
      rjmp  putc       
      sts   UDR0,R19    
      ret

  А как сделать так, чтобы содержимое R19 передавалось на PB3 ?
Аватара пользователя
ИС-пытатель
Вымогатель припоя
Сообщения: 577
Зарегистрирован: Ср июн 19, 2013 08:10:48
Откуда: Москва, СПб, Липецк, Рязань

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

Сообщение ИС-пытатель »

Если у Вас PB3 - не объединен с выводом UART, то только эмулировать работу порта. т. е. смотрите описание работы протокола. Там есть старт-биты и стоп-биты(1 или 2). бит четности может быть или не быть. Алгоритм такой:
1. Устанавливаете вывод в 1. (начальное состояние)
2. сбрасываете вывод в 0 (начало передачи)
3. программная задержка согласно скорости передачи (для 115200 бод 8.7 мкс) в задержке надо учесть время выполнения команд сброса, и пересыла в порт. В принципе, может безболезненно отличатся до 10% в обе стороны.
4. посылаете младший бит. например, так:
Спойлер

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

mov r16, r19 ;загружаем значение для передачи
andi r16, 1 ;берем младший бит
shl  ; 3 сдвига влево для 3-й ножки порта
shl
shl
in r17, PINB
andi r17, ~(0b1000) ; сбрасываем 3-й бит 
or r17, r16  ; если 3-й бит 1, то установим его
out PORTB, r17
shr r19 ; готовим следующий бит для передачи
или так:
Спойлер

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

sbrc r19,0
sbi PORTB, 3
sbrs r19,0
cbi PORTB, 3
shr r19
5. опять программная задержка
6. повторяете п. 4 и п.5 пока не передадите все 8 бит
7. устанавливаете порт в 1 (стоп-бит)
8. задержка
9. Если стоп-бита 2 - повторить п.7 и п.8
Передано!
Вложения
UART.png
(18.96 КБ) 395 скачиваний
Последний раз редактировалось ИС-пытатель Сб апр 26, 2014 13:19:29, всего редактировалось 2 раза.
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

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

Сообщение FreshMan »

при компиляции проэкты выдает следущие ошибки
Изображение
что компилятор хочет то мне этим сказать ?
Tell Me The Truth
Аватара пользователя
ИС-пытатель
Вымогатель припоя
Сообщения: 577
Зарегистрирован: Ср июн 19, 2013 08:10:48
Откуда: Москва, СПб, Липецк, Рязань

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

Сообщение ИС-пытатель »

Наверное, то что у Вас флеш не резиновый.
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

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

Сообщение FreshMan »

да ну....., бросте...., то же eclipse компилит без единого вздоха :))
Tell Me The Truth
Аватара пользователя
ИС-пытатель
Вымогатель припоя
Сообщения: 577
Зарегистрирован: Ср июн 19, 2013 08:10:48
Откуда: Москва, СПб, Липецк, Рязань

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

Сообщение ИС-пытатель »

Так, может, лучше оптимизирует? ;) У Вас там дословно написано, что:
"Секция text переполнена на 466 байт"
Секция text - это секция кода. Попробуйте изменить настройки оптимизации на более сильные
Ответить

Вернуться в «AVR»