Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 05.03.2010, 18:13  
_guardianangel
Почётный гражданин KAZUS.RU
 
Регистрация: 01.04.2009
Адрес: Рязань
Сообщений: 1,140
Сказал спасибо: 21
Сказали Спасибо 635 раз(а) в 344 сообщении(ях)
_guardianangel на пути к лучшему
По умолчанию Re: Си-шный компилятор в AVR Studio меняет последовательность команд

Сообщение от svv11 Посмотреть сообщение
А не подкинет ли кто примерчик c синтаксисом для GCC WinAVR, или просто укажите ошибку в том фрагменте что я в начале выложил.?
До вечера подождешь? А то работы выше ушей.
Реклама:
_guardianangel вне форума  
Непрочитано 06.03.2010, 04:07  
picavr
Почётный гражданин KAZUS.RU
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
picavr на пути к лучшему
По умолчанию Re: Си-шный компилятор в AVR Studio меняет последовательность команд

Сообщение от SasaVitebsk Посмотреть сообщение
AVR Studio - не компилятор. Надоело на форумах читать такую ересь. AVR Studio - это оболочка + ассемблер + симулятор-отладчик. Компилятор Си - внешний.
Это то же бред...
Для перевода текста с языков программирования в исполняемый код, существуют компиляторы и интерпретаторы.
Ассемблер это ЯЗЫК а никак не переводчик с языка в код... Недаром ведь говорят Компилятор языка Си или Фортран итд... То же справедливо и для ассемблера...

Так вот то что вы называете ассемблер - это на самом деле компилятор с языка ассемблер.
Таким образом... AVR Studio - это оболочка + компилятор с языка Ассемблер + симулятор-отладчик.
picavr вне форума  
Непрочитано 06.03.2010, 07:37  
alekseyb
Частый гость
 
Регистрация: 23.05.2005
Сообщений: 16
Сказал спасибо: 4
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
alekseyb на пути к лучшему
По умолчанию Re: Си-шный компилятор в AVR Studio меняет последовательность команд

А если так ?
Цитата:
#include ‹ctype.h›
#include ‹stdint.h›
#include ‹stdio.h›
#include ‹inttypes.h›
#include ‹avr/io.h›



volatile int i;

int __attribute__ ((OS_main)) main(void)
{
for( ; ; )
{
unsigned char temp_1=(PINA & 0x03);
unsigned char temp_2=PINB;
i= (temp_1 ‹‹ 8 ) | temp_2 ;
PORTC = 0x02;
}
return(-1);
}
alekseyb вне форума  
Непрочитано 06.03.2010, 09:54  
ALEKSEY188
Заблокирован
 
Регистрация: 14.04.2008
Адрес: Украина, совсем рядом от террористов!
Сообщений: 388
Сказал спасибо: 32
Сказали Спасибо 85 раз(а) в 62 сообщении(ях)
ALEKSEY188 на пути к лучшему
По умолчанию Re: Си-шный компилятор в AVR Studio меняет последовательность команд

Сообщение от picavr Посмотреть сообщение
Так вот то что вы называете ассемблер - это на самом деле компилятор с языка ассемблер.
Таким образом... AVR Studio - это оболочка + компилятор с языка Ассемблер + симулятор-отладчик.
А может все таки транслятор?
ALEKSEY188 вне форума  
Непрочитано 06.03.2010, 21:47  
SasaVitebsk
Гражданин KAZUS.RU
 
Регистрация: 04.08.2006
Сообщений: 911
Сказал спасибо: 28
Сказали Спасибо 180 раз(а) в 139 сообщении(ях)
SasaVitebsk на пути к лучшему
По умолчанию Re: Си-шный компилятор в AVR Studio меняет последовательность команд

Сообщение от ALEKSEY188 Посмотреть сообщение
А может все таки транслятор?
Компилятор это разновидность транслятора. Трансляторы подразделяются на компиляторы и интерпретаторы.

Выходным форматом компилятора чаще всего является ассемблер.

Ассемблирование не является компиляцией в полном понимании. Так как это уже машинный язык, просто записанный в виде мнемонических имён. Конечно, можно рассматривать макроассемблер, как некоторую разновидность, но в целом, ассемблер не является компилятором. По сути он ничего не делает.

Написание ассемблера - примитивная задача для десятикласника.
SasaVitebsk вне форума  
Непрочитано 07.03.2010, 01:00  
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: Си-шный компилятор в AVR Studio меняет последовательность команд

Какая смешная тема. Весь сыр-бор из-за последовательности чтения пар 8-ми битных регистров? Так читают обычно проще:
Код:
i = ADC;
// или
i = ADC & 0x3F;
А ADC определен как 16 разрядный регистр:
Код:
#define ADC     _SFR_IO16(0x04)
Последовательность чтения/записи в нем правильная автоматом.
Использование в одном выражении двух переменных, с критичной последовательностью обращения к ним, может дать неожиданный результат. Собственно тут это и происходит. Так что если хочется не пользоваться стандартными расширениями GCC, то:
Код:
i = ADCL;
i |= ((ADCH & 0x03)‹‹8);
;
А в выражении:
Код:
Signal = ((PORTK.IN & 0x03) ‹‹ 8) | PORTJ.IN;
Первым выполнится то, что в скобках! И если PORTK.IN будет == ADCH, то трабл неизбежен.
kison вне форума  
Непрочитано 07.03.2010, 01:20  
_guardianangel
Почётный гражданин KAZUS.RU
 
Регистрация: 01.04.2009
Адрес: Рязань
Сообщений: 1,140
Сказал спасибо: 21
Сказали Спасибо 635 раз(а) в 344 сообщении(ях)
_guardianangel на пути к лучшему
По умолчанию Re: Си-шный компилятор в AVR Studio меняет последовательность команд

Сообщение от svv11 Посмотреть сообщение
Разбираясь почему нет нормального обмена с внешним АЦП
kison - АЦП то внешнее и автоматом ниче делаться не станет.
_guardianangel вне форума  
Непрочитано 07.03.2010, 01:56  
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: Си-шный компилятор в AVR Studio меняет последовательность команд

Сообщение от _guardianangel Посмотреть сообщение
kison - АЦП то внешнее и автоматом ниче делаться не станет.
Тогда какая разница в какой последовательности читать? Я возможно не понял задачу, но такие траблы обычно именно с внутренним ацп происходят. А если внешнее, то последовательность чтения не имеет значения.
Там выше дано выражение:
Код:
Signal = ((PORTK.IN & 0x03) ‹‹ 8) | PORTJ.IN;
Как оно связано с внешним АЦП? Если же ацп все же внешнее, с параллельным интерфейсом, то абсолютно пофигу в какой последовательности его считывать. Главное что бы данные не изменились во время этого самого чтения.
kison вне форума  
Непрочитано 07.03.2010, 02:35  
_guardianangel
Почётный гражданин KAZUS.RU
 
Регистрация: 01.04.2009
Адрес: Рязань
Сообщений: 1,140
Сказал спасибо: 21
Сказали Спасибо 635 раз(а) в 344 сообщении(ях)
_guardianangel на пути к лучшему
По умолчанию Re: Си-шный компилятор в AVR Studio меняет последовательность команд

По поводу асм кода
Пример:
Код:
int i;

volatile int main(void)
{
	for(;;)
		{		
	asm volatile   ("in %A0,%1" "\n\t" /* PORTA  мл. байт АЦП   */  
			"in %B0,%2"	"\n\t"
			"andi %B0,0x03" "\n\t"       
			:"=r" (i) /* выходные операторы         */
			:"I"  (_SFR_IO_ADDR(PINA)), "I" (_SFR_IO_ADDR(PINB)) /* входные операторы           */
			);
	
		}
	return(-1);
}
Это чтение 2 портов в переменную i и наложение на старший байт маски 0x03.
_guardianangel вне форума  
Сказали "Спасибо" _guardianangel
svv11 (11.03.2010)
Непрочитано 07.03.2010, 02:37  
_guardianangel
Почётный гражданин KAZUS.RU
 
Регистрация: 01.04.2009
Адрес: Рязань
Сообщений: 1,140
Сказал спасибо: 21
Сказали Спасибо 635 раз(а) в 344 сообщении(ях)
_guardianangel на пути к лучшему
По умолчанию Re: Си-шный компилятор в AVR Studio меняет последовательность команд

Сообщение от kison Посмотреть сообщение
Как оно связано с внешним АЦП?
Ну в первых постах грилось что чтение почемуто происходит раньше синхроимпульса, но кода генерящего его приведено не было.
_guardianangel вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
прерывания usart в avr studio 4.13 zubr_ Микроконтроллеры, АЦП, память и т.д 6 14.10.2009 18:33
AVR studio и GCC Nifelheim Микроконтроллеры, АЦП, память и т.д 12 26.09.2009 23:33


Часовой пояс GMT +4, время: 18:24.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot