AVR ADC & IAR2.28

Jan 29, 2004 Last reply: 22 years ago 32 Replies

Hello, All !



HÁÐÉÓÁÌ (ÓÏÂÓÔ×ÅÎÎÏ ÐÅÒÅÔÁÝÉÌ ÉÚ ÄÒÕÇÏÇÏ ÐÒÏÅËÔÁ) Ñ ×ÏÔ ÔÁËÏÊ ×ÏÔ ËÏÄ (ÎÉÖÅ). ïÄÉÎ ÒÁÚ ×ÙÚÙ×ÁÅÔÓÑ init_ADC(), ÐÏÔÏÍ ÎÁÐÒÉÍÅÒ ÐÏ ÐÒÅÒÙ×ÁÎÉÀ ÏÔ ÔÁÊÍÅÒÁ ÒÁÚ × ÍÉÌÌÉÓÅËÕÎÄÕ ×ÙÚÙ×ÁÅÔÓÑ get_ad(), ËÏÔÏÒÙÊ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏ ËÁÎÁÌ ÚÁ ËÁÎÁÌÏÍ (ÐÏ ÏÄÎÏÍÕ ÎÁ ×ÙÚÏ×) ÏÐÒÁÛÉ×ÁÅÔ áãð É ÚÁÐÏÌÎÑÅÔ ÍÁÓÓÉ× ad_res[] ÏÔÆÉÌØÔÒÏ×ÁÎÎÙÍÉ ÚÎÁÞÅÎÉÑÍÉ ÍÅÄÌÅÎÎÏ ÍÅÎÑÀÝÉÈÓÑ ×ÅÌÉÞÉÎ. ÷ÏÐÒÏÓ × ÔÏÍ, ÞÔÏ ÐÏÞÅÍÕ-ÔÏ ÂÅÚ ÐÏÍÅÞÅÎÙÈ "??????????" ÄÅÊÓÔ×ÉÊ ÚÎÁÞÅÎÉÑ ÏËÁÚÙ×ÁÀÔÓÑ ÓÄ×ÉÎÕÔÙÍÉ ÎÁ 1. ôÏ ÅÓÔØ ÐÏ ÎÕÌÅ×ÏÍÕ ÉÎÄÅËÓÕ ÚÎÁÞÅÎÉÅ ÐÏÓÌÅÄÎÅÇÏ ËÁÎÁÌÁ, ÐÏ ÐÅÒ×ÏÍÕ - ÎÕÌÅ×ÏÇÏ, ÎÕ É ÔÁË ÄÁÌÅÅ. üÔÏ Ñ ÓÍÏÔÒÀ É ÎÅ ×ÉÖÕ ÞÅÇÏ-ÔÏ ÏÞÅ×ÉÄÎÏÇÏ, ÁÐÐÁÒÁÔÎÁÑ ÏÓÏÂÅÎÎÏÓÔØ (ÎÅ ÐÏÈÏÖÅ) ÉÌÉ ÏÛÉÂËÁ ÐÒÉ ËÏÍÐÉÌÑÃÉÉ (ÔÏÖÅ ÎÅ ÐÏÈÏÖÅ). ñ ÐÏÞÅÓÁÌ × ÇÏÌÏ×Å É ÐÒÏÄÏÌÖÉÌ ÄÁÌØÛÅ ÒÁÂÏÔÁÔØ, ÚÁÄÁÞÁ ÎÅ ÐÅÒÅÎÅÓÔÉ ÎÁ Mega32L ÐÒÏÇÒÁÍÍÕ, Á ÏÓ×ÏÉÔØ ÓÒÅÄÓÔ×Á ÒÁÚÒÁÂÏÔËÉ ÐÅÒÅÄ ÎÁÞÁÌÏÍ ÒÁÂÏÔÙ Ó ÎÏ×ÙÍ ÁÔÍÅÌÏ×ÓËÉÍ ËÒÉÓÔÁÌÌÏÍ, ËÏÔÏÒÁÑ ÎÁÞÎÅÔÓÑ ËÁË ÔÏÌØËÏ ÂÕÄÕÔ ÕÌÁÖÅÎÙ ÀÒÉÄÉÞÅÓËÉÅ ÆÏÒÍÁÌØÎÏÓÔÉ, ÎÏ ×ÏÐÒÏÓ ÏÓÔÁÌÓÑ.



úÁÏÄÎÏ É ÅÝÅ ÏÄÉÎ ×ÏÐÒÏÓ. ëÁË ÓËÁÚÁÔØ ËÏÍÐÉÌÑÔÏÒÕ × IDE ÞÔÏÂÙ ÏÎ ËÏÄ ×ÉÄÁ puts("Hello, World!"); ÎÅ ËÏÍÐÉÌÉÒÏ×ÁÌ ËÁË ËÏÎÓÔÁÎÔÎÕÀ ÓÔÒÏËÕ × ðúõ É ÕËÁÚÁÔÅÌØ ÎÁ ÎÅÅ × ïúõ.

____________types.h_________________________ typedef unsigned int WORD; typedef unsigned int word; typedef unsigned char BYTE; typedef unsigned char byte; ____________types.h_________________________



____________adc.h____________________________ #define ad_num 8 // channels #define _8BIT_



void init_ADC(void); void get_ad(); extern __no_init byte ad_res[]; /* AD average results */ extern __no_init byte ad_adj[]; /* AD adjustment values */ ____________adc.h____________________________



____________adc.c____________________________



// 8 bit ADC -> 8 bit low pass filtered



#define ENABLE_BIT_DEFINITIONS #include <iom32.h>



#include <types.h>



#include <ina90.h>



#include <ADC.h>


#define LPF



// Private variables __no_init static byte ad_ch; /* ADC channel */ __no_init static word ad_res_w[ad_num]; /* AD temporary values */



// Public variables __no_init byte ad_res[ad_num]; /* AD average results */ __no_init byte ad_adj[ad_num]; /* AD adjustment values */


void init_ADC(void) { register byte i;



ADMUX = (1<<REFS0)|(1<<ADLAR); ADCSRA = ((1<<ADEN)|6); // CLK/64 ad_ch = 0; #ifdef _8BIT_ ADMUX = 0x60; #else ADMUX = 0x40; #endif for(i = 0;i < ad_num; i++) { ad_res_w[i] = 0; ad_adj[i] = 128; } DDRA &= (byte)(255 << ad_num); }


/* AD measurement and average value calculation (low pass digital filter) */ /* one channel per call */



void get_ad() { #ifdef LPF word ad_tmp_w;



ADCSRA |= (1<<ADSC); //Start ADC while ((ADCSRA & (1<<ADSC)) == 1);



#ifdef _8BIT_ ad_tmp_w = (word)ADCH * 128U; // Scale AD value #else ad_tmp_w = (word)ADC * 32U; #endif



ad_res_w[ad_ch] += ((signed)(ad_tmp_w - ad_res_w[ad_ch]) / 16);



ad_res[ad_ch] = (byte)(((ad_res_w[ad_ch] /128) * ad_adj[ad_ch]) / 128); // * Scale outcome */


/* Select next channel */ if (++ad_ch == ad_num) ad_ch = 0;



#ifdef _8BIT_ if (ad_ch == ad_num - 1) ADMUX = 0x60; /* ?????????? */ else ADMUX = 0x60 | ad_ch+1; #else if (ad_ch == ad_num - 1) ADMUX = 0x40; else ADMUX = 0x40 | ad_ch+1; #endif



#else //LPF ADCSRA |= (1<<ADSC); while ((ADCSRA & (1<<ADSC)) == 1); ad_res[ad_ch] = ADCH; /* Select next channel */ if (++ad_ch == ad_num) ad_ch = 0; ADMUX = 0x60; #endif //LPF } ____________adc.c____________________________



ó Õ×ÁÖÅÎÉÅÍ, äÉÍÁ ïÒÌÏ×.

Всем привет!

Dima Orlov писал к All 29.01.2004:

DO> Заодно и еще один вопрос. Как сказать компилятору в IDE чтобы он код DO> вида puts("Hello, World!"); не компилировал как константную строку в DO> ПЗУ и указатель на нее в ОЗУ.

Чтобы именно этот код - никак. Поскольку функция puts работает со строкой из ОЗУ. Есть функция puts_P, которая работает со строкой из flash. Есть опция "--string_literals_in_flash" при включении которой все литералы будут размещаться во flash, а не в ОЗУ. Или, если эту опцию не включать, разместить строку во flash можно так: char __flash str[]="Hello, World!";

Hello, Askold Volkov !

ñ ×ÏÏÂÝÅ-ÔÏ ÎÅ ÉÍÅÌ × ×ÉÄÕ ÎÉËÁËÉÈ ÂÉÂÌÉÏÔÅÞÎÙÈ ÆÕÎËÃÉÊ, ÜÔÏ ÍÏÑ ÆÕÎËÃÉÑ.

void puts(const char * str);

÷ÏÂÝÅÍ Ñ ÐÒÉÍÅÒÎÏ ÐÏÎÑÌ ËÕÄÁ ÎÁÄÏ ËÏÐÁÔØ, ÓÐÁÓÉÂÏ.

ñ ÐÏËÁ ÞÔÏ ÐÏÌØÚÕÀÓØ IDE, ÔÁÍ ÜÔÁ ÏÐÃÉÑ ÎÅ ×ËÌÀÞÁÅÔÓÑ... ó Õ×ÁÖÅÎÉÅÍ, äÉÍÁ ïÒÌÏ×.

Hello, Askold Volkov !

óÐÁÓÉÂÏ, ÐÏÐÒÏÂÕÀ. íÅÎÑ ÎÁÓÔÏÒÏÖÉÌÏ ÔÏ, ÞÔÏ ÔÁËÁÑ ÏÐÃÉÑ × ÐÒÉÎÃÉÐÅ ÅÓÔØ É ×ËÌÀÞÁÅÔÓÑ ËÒÙÖÉËÏÍ, ÎÏ ÐÒÉ ×ÙÂÏÒÅ ÍÅÇÉ 32 ÏÎÁ ÓÔÁÎÏ×ÉÔÓÑ ÎÅÁËÔÉ×ÎÏÊ. ÷ÏÏÂÝÅ ËÏÇÄÁ ÄÅÌÏ ÄÏÊÄÅÔ ÄÏ ÎÏÒÍÁÌØÎÈ ÒÁÂÏÞÉÈ ÐÒÏÅËÔÏ×, Ñ ×ÙËÉÎÕ ÜÔÕ IDE, ÎÁÐÉÛÕ make-ÆÁÊÌÙ É ÂÕÄÕ ÓÏÂÉÒÁÔØ ÜÔÉ ÐÒÏÅËÔÙ ÂÅÚ ide. HÏ ÐÏËÁ ÞÔÏ ÍÎÅ ÕÄÏÂÎÅÊ ÔÁË. ó Õ×ÁÖÅÎÉÅÍ, äÉÍÁ ïÒÌÏ×.

PS á ÐÏ ÐÏ×ÏÄÕ ÚÁÇÁÄÏÞÎÏÇÏ ÐÏ×ÅÄÅÎÉÑ ËÁÎÁÌÏ× áãð ÉÄÅÊ ÎÅÔ?

Всем привет!

Dima Orlov писал к Askold Volkov 30.01.2004:

DO> Я пока что пользуюсь IDE, там эта опция не включается...

включается, как и любая другая. В параметрах компилятора в IDE есть поле "Additional compiler options", куда можно вписать все, что угодно.

äÏÂÒÏÇÏ ÚÄÏÒÏרÑ, Askold!

30 Jan 04 12:53, Askold Volkov ÎÁÐÉÓÁÌ ÄÌÑ Dima Orlov:

DO>> ñ ÐÏËÁ ÞÔÏ ÐÏÌØÚÕÀÓØ IDE, ÔÁÍ ÜÔÁ ÏÐÃÉÑ ÎÅ ×ËÌÀÞÁÅÔÓÑ...

AV> ×ËÌÀÞÁÅÔÓÑ, ËÁË É ÌÀÂÁÑ ÄÒÕÇÁÑ. ÷ ÐÁÒÁÍÅÔÒÁÈ ËÏÍÐÉÌÑÔÏÒÁ × IDE ÅÓÔØ ÐÏÌÅ AV> "Additional compiler options", ËÕÄÁ ÍÏÖÎÏ ×ÐÉÓÁÔØ ×ÓÅ, ÞÔÏ ÕÇÏÄÎÏ.

× ÄÏËÅ ÎÁ 2.28 ÎÅ ÎÁÛÅÌ ÔÁËÏÇÏ. ËÏÍÐÉÌÅÒ ÒÕÇÁÅÔÓÑ ÎÁ ÎÅÐÒÁ×ÉÌØÎÙÊ ÓÉÎÔÁËÓÉÓ. ÉÌÉ ÒÅÞØ ÎÅ Ï 2.28? Á ÞÔÏ __vtbl × ÓÅÇÍÅÎÔ ËÏÄÁ ÚÁÐÉÓÁÔØ ÐÏËÁ ÎÉÞÅÇÏ ÎÅ ÐÒÉÄÕÍÁÌÉ?

WBR, óÅÒÇÅÊ. ICQ: 101347299

Всем привет!

Dima Orlov писал к Askold Volkov 30.01.2004:

DO> Меня насторожило то, что такая опция в принципе есть и DO> включается крыжиком, но при выборе меги 32 она становится неактивной.

нету там такого крыжика! А тот, который ты, видимо, имеешь в виду предназначен для другого - он размещает строковые литералы во внешнем ПЗУ данных, коего у меги 32 быть не может по причине отсутствия интерфейса внешней памяти.

DO> PS А по поводу загадочного поведения каналов АЦП идей нет?

да сильно много ты там понаписал - в лом разбираться. Но ни в компиляторе ни в АЦП (mega128) я никаких странностей не замечал.

Hello Dima.

29 Jan 04 20:23, you wrote to all:

DO> HÁÐÉÓÁÌ (ÓÏÂÓÔ×ÅÎÎÏ ÐÅÒÅÔÁÝÉÌ ÉÚ ÄÒÕÇÏÇÏ ÐÒÏÅËÔÁ) Ñ ×ÏÔ ÔÁËÏÊ ×ÏÔ ËÏÄ DO> (ÎÉÖÅ). ïÄÉÎ ÒÁÚ ×ÙÚÙ×ÁÅÔÓÑ init_ADC(), ÐÏÔÏÍ ÎÁÐÒÉÍÅÒ ÐÏ ÐÒÅÒÙ×ÁÎÉÀ DO> ÏÔ ÔÁÊÍÅÒÁ ÒÁÚ × ÍÉÌÌÉÓÅËÕÎÄÕ ×ÙÚÙ×ÁÅÔÓÑ get_ad(), ËÏÔÏÒÙÊ DO> ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏ ËÁÎÁÌ ÚÁ ËÁÎÁÌÏÍ (ÐÏ ÏÄÎÏÍÕ ÎÁ ×ÙÚÏ×) ÏÐÒÁÛÉ×ÁÅÔ áãð É DO> ÚÁÐÏÌÎÑÅÔ ÍÁÓÓÉ× ad_res[] ÏÔÆÉÌØÔÒÏ×ÁÎÎÙÍÉ ÚÎÁÞÅÎÉÑÍÉ ÍÅÄÌÅÎÎÏ DO> ÍÅÎÑÀÝÉÈÓÑ ×ÅÌÉÞÉÎ. ÷ÏÐÒÏÓ × ÔÏÍ, ÞÔÏ ÐÏÞÅÍÕ-ÔÏ ÂÅÚ ÐÏÍÅÞÅÎÙÈ DO> "??????????" ÄÅÊÓÔ×ÉÊ ÚÎÁÞÅÎÉÑ ÏËÁÚÙ×ÁÀÔÓÑ ÓÄ×ÉÎÕÔÙÍÉ ÎÁ 1. ôÏ ÅÓÔØ ÐÏ

ñ ÎÅ ÓÔÁÌ ×ÞÉÔÙ×ÁÔØÓÑ × ÐÏÔÒÏÂÎÏÓÔÉ (ÔÅÂÅ ÂÙ ÄÌÑ ÐÏÎÑÔÎÏÓÔÉ, ÎÁÄÏ ÂÙÌÏ #ifdef-Ù ÒÁÓËÒÙÔØ), ÎÏ ÎÕÖÎÏ ÕÞÅÓÔØ, ÞÔÏ ÍÕÌØÔÉÐÌÅËÓÏÒ × AVR ÏÂÎÏ×ÌÑÅÔÓÑ ÉÚ ÒÅÇÉÓÔÒÁ ADMUX × ËÏÎÃÅ ÐÒÅÏÂÒÁÚÏ×ÁÎÉÑ. ôÏ ÅÓÔØ, ÐÏËÁ ÐÒÅÏÂÒÁÚÏ×ÁÎÉÅ ÉÄÅÔ, ËÁÎÁÌ ÎÅ ÐÅÒÅËÌÀÞÉÔÓÑ. ÷ÞÉÔÁÊÓÑ × ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÊ ÒÁÚÄÅÌ É ÐÏÜËÓÐÅÒÉÍÅÎÔÉÒÕÊ.

DO> ÎÕÌÅ×ÏÍÕ ÉÎÄÅËÓÕ ÚÎÁÞÅÎÉÅ ÐÏÓÌÅÄÎÅÇÏ ËÁÎÁÌÁ, ÐÏ ÐÅÒ×ÏÍÕ - ÎÕÌÅ×ÏÇÏ, DO> ÎÕ DO> É ÔÁË ÄÁÌÅÅ.

ñ × ÎÁÛÅÍ ÕÓÔÒÏÊÓÔ×Å (á×ÔÏÓËÁÎÅÒ) ÔÁËÉÍÉ ÇÌÀËÁÍÉ ÎÁÅÌÓÑ ÄÏÆÉÇÁ. ôÏÌØËÏ ÔÁÍ ÄÒÕÇÁÑ ÐÒÏÂÌÅÍÁ - ÍÕÌØÔÉÐÌÅËÓÏÒ ÍÅÄÌÅÎÎÏ ÐÅÒÅËÌÀÞÁÅÔÓÑ, É áãð ÏÃÉÆÒÏ×Ù×ÁÌ ÓÉÇÎÁÌ Ó ÐÒÅÄÙÄÕÝÅÇÏ ËÁÎÁÌÁ.

Alexey

Hello, Askold Volkov !

á, ÔÏÇÄÁ ÐÏÎÑÔÎÏ. HÅÐÏÎÑÔÎÏ ÔÏÌØËÏ ÐÏÞÅÍÕ × ide, ÕÖÅ ÅÓÌÉ ÅÅ ÓÄÅÌÁÌÉ, ÎÅ ×ÎÅÓÔÉ ×ÓÅ ËÒÙÖÉËÉ. ÷ÉÄÉÍÏ ÐÏÒÁ ÏÔ ÎÅÅ ÏÔËÁÚÙ×ÁÔØÓÑ Ë ÞÅÒÔÏ×ÏÊ ÍÁÔÅÒÉ, ÎÅ ÄÏÖÉÄÁÑÓØ ÐÅÒÉÔÏÎÉÔÁ. óÏÂÓÔ×ÅÎÎÏ ÏÔ ÌÉÎËÏ×ËÉ Ó ÕÓÔÁÎÏ×ÌÅÎÎÙÍÉ ËÒÙÖÉËÁÍÉ ÕÖÅ ÐÒÉÛÌÏÓØ ÏÔËÁÚÁÔØÓÑ - ÏÎÏ ÐÒÏÅÓÔÏ ÐÅÒÅÓÔÁÌÏ ÌÉÎËÏ×ÁÔØÓÑ, É Ó ÉÄÕÝÉÍ ÌÉÎË-ÆÁÊÌÏÍ ÔÏÖÅ. ðÒÉÛÌÏÓØ ÐÒÁ×ÉÔØ... õ ÍÅÎÑ ÔÁËÏÅ ÏÝÕÝÅÎÉÅ, ÞÔÏ ÏÎÉ ÄÅÌÁÀÔ ÔÁË ÓÐÅÃÉÁÌØÎÏ, ÞÔÏÂÙ ÎÁÞÉÎÁÀÝÉÊ ÉÓÐÏÌØÚÏ×ÁÔØ ÉÈ ÔÕÌÚÙ ÔÁËÉ ÉÚÕÞÉÌ ×ÓÅ ÜÔÏ.

HÕ ÄÁ, ÐÏ ÓÕÔÉ ÃÅÌÙÈ 5 ÓÔÒÏË...

ïÓÔÁÌØÎÏÅ Õ ÍÅÎÑ ÔÏÖÅ ÒÁÂÏÔÁÅÔ ÐÏÓÌÅ ÐÅÒÅËÏÍÐÉÌÑÃÉÉ, É ÔÁÍ ÔÏÖÅ ÒÁÚÎÏÏÂÒÁÚÎÙÅ ÏÐÅÒÁÃÉÉ Ó ÍÁÓÓÉ×ÁÍÉ. HÕ ÅÓÔØ ×ÏÐÒÏÓÙ Ó ÜÆÆÅËÔÉ×ÎÏÓÔØÀ É ÒÁÚÍÅÝÅÎÉÅÍ ÐÅÒÅÍÅÎÎÙÈ, ÎÏ ÜÔÏ ÜÔÁÐ ÎÏÍÅÒ Ä×Á É ÓÔÁÎÅÔ ÁËÔÕÁÌØÎÙÍ, ÅÓÌÉ × ÉÍÅÀÝÉÅÓÑ è Ë ÞÉÐÁ èèèè èèèèèèè 1/2 ÏÎÏ ÎÁÞÎÅÔ ÎÅ ×ÌÁÚÉÔØ, ÐÏÔÏÍÕ ÞÔÏ ÐÅÒ×ÁÑ ÚÁÄÁÞÁ ÓÏÂÒÁÔØ ÐÒÏÅËÔ ÎÁ ÜÔÏÍ ÞÉÐÅ É ÓÍÏÔÒÅÔØ ËÁË ÏÎÏ × ÒÅÁÌØÎÏÍ ÜÎ×ÁÊÒÏÍÅÎÔÅ ÖÉ×ÅÔ. ó Õ×ÁÖÅÎÉÅÍ, äÉÍÁ ïÒÌÏ×.

Привет, 30 января 2004 г., 13:51:46, ты писал(а):

DO>>> Я пока что пользуюсь IDE, там эта опция не включается... AV>> включается, как и любая другая. В параметрах компилятора в AV>> IDE есть поле AV>> "Additional compiler options", куда можно вписать все, что угодно. ST> в доке на 2.28 не нашел такого. компилер ругается на неправильный ST> синтаксис. или речь не о 2.28?

2.28А прекрасно понимает этот ключ

Всего хорошего.

Fri, 30 Jan 2004 13:51:46 +0300 Sergei Tuchinski wrote to Askold Volkov:

[...]

ST> × ÄÏËÅ ÎÁ 2.28 ÎÅ ÎÁÛÅÌ ÔÁËÏÇÏ. ËÏÍÐÉÌÅÒ ÒÕÇÁÅÔÓÑ ÎÁ ÎÅÐÒÁ×ÉÌØÎÙÊ ST> ÓÉÎÔÁËÓÉÓ. ÉÌÉ ÒÅÞØ ÎÅ Ï 2.28? ST> Á ÞÔÏ __vtbl × ÓÅÇÍÅÎÔ ËÏÄÁ ÚÁÐÉÓÁÔØ ÐÏËÁ ÎÉÞÅÇÏ ÎÅ ÐÒÉÄÕÍÁÌÉ?

÷ ÓÍÙÓÌÅ? ôÁÂÌÉÃÁ ×ÉÒÔÕÁÌØÎÙÈ ÆÕÎËÃÉÊ ÐÒÅËÒÁÓÎÏ ÒÁÚÍÅÝÁÅÔÓÑ ×Ï ÆÌÅÛÉ ÂÅÚÏ ×ÓÑËÉÈ ÕËÁÚÁÎÉÊ.

Fri Jan 30 2004 12:53, Dima Orlov wrote to Askold Volkov:

DO> PS á ÐÏ ÐÏ×ÏÄÕ ÚÁÇÁÄÏÞÎÏÇÏ ÐÏ×ÅÄÅÎÉÑ ËÁÎÁÌÏ× áãð ÉÄÅÊ ÎÅÔ?

ôÙ ÂÙ ÎÁÐÉÓÁÌ cÀÄÁ ÐÒÉÍÅÒ ÐÏ-ÞÅÌÏ×ÅÞÅÓËÉ, ÏÓÔÁ×É× ÔÏÌØËÏ ÓÏÄÅÒÖÁÔÅÌØÎÕÀ ÞÁÓÔØ É ÕÂÒÁ× ËÕÞÕ #ifdef-Ï×, ÎÅ ÏÔÎÏÓÑÝÉÈÓÑ Ë ÄÅÌÕ.

VLV

"Evil will prevail because good is dumb" (c) Space Balls

  • Crossposted in My_Mail ðÒÉ×ÅÔ, Dima!
ïÄÎÁÖÄÙ, Thursday January 29 2004 20:23, Dima Orlov ÐÉÓÁÌ Ë All:

DO> Hello, All !

DO> HÁÐÉÓÁÌ (ÓÏÂÓÔ×ÅÎÎÏ ÐÅÒÅÔÁÝÉÌ ÉÚ ÄÒÕÇÏÇÏ ÐÒÏÅËÔÁ) Ñ ×ÏÔ ÔÁËÏÊ ×ÏÔ ËÏÄ DO> (ÎÉÖÅ). ïÄÉÎ ÒÁÚ ×ÙÚÙ×ÁÅÔÓÑ init_ADC(), ÐÏÔÏÍ ÎÁÐÒÉÍÅÒ ÐÏ ÐÒÅÒÙ×ÁÎÉÀ DO> ÏÔ ÔÁÊÍÅÒÁ ÒÁÚ × ÍÉÌÌÉÓÅËÕÎÄÕ ×ÙÚÙ×ÁÅÔÓÑ get_ad(), ËÏÔÏÒÙÊ DO> ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏ ËÁÎÁÌ ÚÁ ËÁÎÁÌÏÍ (ÐÏ ÏÄÎÏÍÕ ÎÁ ×ÙÚÏ×) ÏÐÒÁÛÉ×ÁÅÔ áãð É DO> ÚÁÐÏÌÎÑÅÔ ÍÁÓÓÉ× ad_res[] ÏÔÆÉÌØÔÒÏ×ÁÎÎÙÍÉ ÚÎÁÞÅÎÉÑÍÉ ÍÅÄÌÅÎÎÏ DO> ÍÅÎÑÀÝÉÈÓÑ ×ÅÌÉÞÉÎ. ÷ÏÐÒÏÓ × ÔÏÍ, ÞÔÏ ÐÏÞÅÍÕ-ÔÏ ÂÅÚ ÐÏÍÅÞÅÎÙÈ DO> "??????????" ÄÅÊÓÔ×ÉÊ ÚÎÁÞÅÎÉÑ ÏËÁÚÙ×ÁÀÔÓÑ ÓÄ×ÉÎÕÔÙÍÉ ÎÁ 1. ôÏ ÅÓÔØ ÐÏ DO> ÎÕÌÅ×ÏÍÕ ÉÎÄÅËÓÕ ÚÎÁÞÅÎÉÅ ÐÏÓÌÅÄÎÅÇÏ ËÁÎÁÌÁ, ÐÏ ÐÅÒ×ÏÍÕ - ÎÕÌÅ×ÏÇÏ, ÎÕ DO> É ÔÁË ÄÁÌÅÅ. üÔÏ Ñ ÓÍÏÔÒÀ É ÎÅ ×ÉÖÕ ÞÅÇÏ-ÔÏ ÏÞÅ×ÉÄÎÏÇÏ, ÁÐÐÁÒÁÔÎÁÑ DO> ÏÓÏÂÅÎÎÏÓÔØ (ÎÅ ÐÏÈÏÖÅ) ÉÌÉ ÏÛÉÂËÁ ÐÒÉ ËÏÍÐÉÌÑÃÉÉ (ÔÏÖÅ ÎÅ ÐÏÈÏÖÅ). ñ DO> ÐÏÞÅÓÁÌ × ÇÏÌÏ×Å É ÐÒÏÄÏÌÖÉÌ ÄÁÌØÛÅ ÒÁÂÏÔÁÔØ, ÚÁÄÁÞÁ ÎÅ ÐÅÒÅÎÅÓÔÉ ÎÁ DO> Mega32L ÐÒÏÇÒÁÍÍÕ, Á ÏÓ×ÏÉÔØ ÓÒÅÄÓÔ×Á ÒÁÚÒÁÂÏÔËÉ ÐÅÒÅÄ ÎÁÞÁÌÏÍ ÒÁÂÏÔÙ DO> Ó ÎÏ×ÙÍ ÁÔÍÅÌÏ×ÓËÉÍ ËÒÉÓÔÁÌÌÏÍ, ËÏÔÏÒÁÑ ÎÁÞÎÅÔÓÑ ËÁË ÔÏÌØËÏ ÂÕÄÕÔ DO> ÕÌÁÖÅÎÙ ÀÒÉÄÉÞÅÓËÉÅ ÆÏÒÍÁÌØÎÏÓÔÉ, ÎÏ ×ÏÐÒÏÓ ÏÓÔÁÌÓÑ.

DO> úÁÏÄÎÏ É ÅÝÅ ÏÄÉÎ ×ÏÐÒÏÓ. ëÁË ÓËÁÚÁÔØ ËÏÍÐÉÌÑÔÏÒÕ × IDE ÞÔÏÂÙ ÏÎ ËÏÄ DO> ×ÉÄÁ puts("Hello, World!"); ÎÅ ËÏÍÐÉÌÉÒÏ×ÁÌ ËÁË ËÏÎÓÔÁÎÔÎÕÀ ÓÔÒÏËÕ × DO> ðúõ É ÕËÁÚÁÔÅÌØ ÎÁ ÎÅÅ × ïúõ.

[skip]

DO> void get_ad() DO> { DO> #ifdef LPF DO> word ad_tmp_w;

DO> ADCSRA |= (1<<ADSC); //Start ADC DO> while ((ADCSRA & (1<<ADSC)) == 1); ADSC != 0 (ÐÏ ËÒÁÊÎÅÊ ÍÅÒÅ × mege128), ÔÙ ÐÒÏÓÔÏ ÎÅ ÄÏÖÉÄÁÅÛÓÑ ÏËÏÎÞÁÎÉÑ ÉÚÍÅÒÅÎÉÑ Á ÓÞÉÔÙ×ÁÅÛØ ÐÒÅÄÙÄÕÝÅÅ ÉÚÍÅÒÅÎÎÏÅ ÚÎÁÞÅÎÉÅ

ðÏËÁ.

E-Mail : snipped-for-privacy@box.vsi.ru

Hello, Michael Bobrov !

á ×ÏÔ ÜÔÏ ÐÏÈÏÖÅ ÎÁ ÐÒÁ×ÄÕ, ÐÏÓÌÅÚÁ×ÔÒÁ ÐÒÏ×ÅÒÀ, tnx. ó Õ×ÁÖÅÎÉÅÍ, äÉÍÁ ïÒÌÏ×.
÷ÓÅÍ ÐÒÉ×ÅÔ!

Sergei Tuchinski ÐÉÓÁÌ Ë Askold Volkov Fri, 30 Jan 2004 13:51:46 +0300:

??>>>> åÓÔØ ÏÐÃÉÑ ??>>>> "--string_literals_in_flash" ÐÒÉ ×ËÌÀÞÅÎÉÉ ËÏÔÏÒÏÊ ×ÓÅ ÌÉÔÅÒÁÌÙ ??>>>> ÂÕÄÕÔ

ST> × ÄÏËÅ ÎÁ 2.28 ÎÅ ÎÁÛÅÌ ÔÁËÏÇÏ. ËÏÍÐÉÌÅÒ ÒÕÇÁÅÔÓÑ ÎÁ ÎÅÐÒÁ×ÉÌØÎÙÊ ST> ÓÉÎÔÁËÓÉÓ. ÉÌÉ ÒÅÞØ ÎÅ Ï 2.28?

éÍÅÎÎÏ Ï ÎÅÍ. îÉÞÅÇÏ ÔÁÍ ÎÉËÕÄÁ ÎÅ ÒÕÇÁÅÔÓÑ. ïÐÉÓÁÎÏ × iccavr.htm

ST> Á ÞÔÏÂ __vtbl × ÓÅÇÍÅÎÔ ËÏÄÁ ÚÁÐÉÓÁÔØ ÐÏËÁ ÎÉÞÅÇÏ ÎÅ ÐÒÉÄÕÍÁÌÉ?

Á ÞÔÏ ÜÔÏ ÔÁËÏÅ É ÚÁÞÅÍ ÎÁÄÏ?
÷ÓÅÍ ÐÒÉ×ÅÔ!

Dima Orlov ÐÉÓÁÌ Ë Askold Volkov Fri, 30 Jan 2004 14:53:00 +0300:

DO>>> íÅÎÑ ÎÁÓÔÏÒÏÖÉÌÏ ÔÏ, ÞÔÏ ÔÁËÁÑ ÏÐÃÉÑ × ÐÒÉÎÃÉÐÅ ÅÓÔØ É DO>>> ×ËÌÀÞÁÅÔÓÑ ËÒÙÖÉËÏÍ, ÎÏ ÐÒÉ ×ÙÂÏÒÅ ÍÅÇÉ 32 ÏÎÁ ÓÔÁÎÏ×ÉÔÓÑ ÎÅÁËÔÉ×ÎÏÊ.

??>> ÎÅÔÕ ÔÁÍ ÔÁËÏÇÏ ËÒÙÖÉËÁ! á ÔÏÔ, ËÏÔÏÒÙÊ ÔÙ, ×ÉÄÉÍÏ, ÉÍÅÅÛØ × ×ÉÄÕ ??>> ÐÒÅÄÎÁÚÎÁÞÅÎ ÄÌÑ ÄÒÕÇÏÇÏ - ÏÎ ÒÁÚÍÅÝÁÅÔ ÓÔÒÏËÏ×ÙÅ ÌÉÔÅÒÁÌÙ ×Ï ×ÎÅÛÎÅÍ ??>> ðúõ ÄÁÎÎÙÈ, ËÏÅÇÏ Õ ÍÅÇÉ 32 ÂÙÔØ ÎÅ ÍÏÖÅÔ ÐÏ ÐÒÉÞÉÎÅ ÏÔÓÕÔÓÔ×ÉÑ ??>> ÉÎÔÅÒÆÅÊÓÁ ×ÎÅÛÎÅÊ ÐÁÍÑÔÉ.

DO> á, ÔÏÇÄÁ ÐÏÎÑÔÎÏ. HÅÐÏÎÑÔÎÏ ÔÏÌØËÏ ÐÏÞÅÍÕ × ide, ÕÖÅ ÅÓÌÉ ÅÅ ÓÄÅÌÁÌÉ, DO> ÎÅ ×ÎÅÓÔÉ ×ÓÅ ËÒÙÖÉËÉ.

ôÏÞÎÏ ÏÔ×ÅÔÉÔØ ÍÏÇÕÔ ÔÏÌØËÏ Á×ÔÏÒÙ, Ñ ÖÅ ÍÏÇÕ ÔÏÌØËÏ ×ÙÓËÁÚÁÔØ Ó×ÏÉ ÄÏÇÁÄËÉ. ÷Ï-ÐÅÒ×ÙÈ, ÜÔÏ Ó×ÅÖÁÑ ÏÐÃÉÑ, ×ÏÚÍÏÖÎÏ ÅÅ ÐÒÏÓÔÏ ÎÅ ÕÓÐÅÌÉ ×ÎÅÓÔÉ × IDE Ë ÍÏÍÅÎÔÕ ÅÇÏ ×ÙÐÕÓËÁ. ÷Ï-×ÔÏÒÙÈ IARÏ×ÃÙ ÏÞÅÎØ ÄÏÌÇÏ ÓÏÐÒÏÔÉ×ÌÑÌÉÓØ ÅÅ ××ÅÄÅÎÉÀ, ÓÞÉÔÁÑ ÉÄÅÏÌÏÇÉÞÅÓËÉ ÎÅÐÒÁ×ÉÌØÎÏÊ, É ÓÄÅÌÁÌÉ ÜÔÏ ÔÏÌØËÏ ÐÏÄ ÄÁ×ÌÅÎÉÅÍ ÐÏÌØÚÏ×ÁÔÅÌÅÊ. é ÄÅÊÓÔ×ÉÔÅÌØÎÏ - ×ËÌÀÞÅÎÉÅ ÜÔÏÊ ÏÐÃÉÉ ÐÒÏÔÉ×ÏÒÅÞÉÔ ÓÔÁÎÄÁÒÔÕ ÑÚÙËÁ.

DO> ÷ÉÄÉÍÏ ÐÏÒÁ ÏÔ ÎÅÅ ÏÔËÁÚÙ×ÁÔØÓÑ Ë ÞÅÒÔÏ×ÏÊ ÍÁÔÅÒÉ, ÎÅ ÄÏÖÉÄÁÑÓØ DO> ÐÅÒÉÔÏÎÉÔÁ. óÏÂÓÔ×ÅÎÎÏ ÏÔ ÌÉÎËÏ×ËÉ Ó ÕÓÔÁÎÏ×ÌÅÎÎÙÍÉ ËÒÙÖÉËÁÍÉ ÕÖÅ DO> ÐÒÉÛÌÏÓØ ÏÔËÁÚÁÔØÓÑ - ÏÎÏ ÐÒÏÅÓÔÏ ÐÅÒÅÓÔÁÌÏ ÌÉÎËÏ×ÁÔØÓÑ, É Ó ÉÄÕÝÉÍ DO> ÌÉÎË-ÆÁÊÌÏÍ ÔÏÖÅ. ðÒÉÛÌÏÓØ ÐÒÁ×ÉÔØ...

óÔÒÁÎÎÏ. á Ñ ÉÚ ÓÒÅÄÙ ÓÏÂÉÒÁÀ É ÎÉÞÅÇÏ.

Sat Jan 31 2004 08:32, Askold Volkov wrote to Dima Orlov: DO>> á, ÔÏÇÄÁ ÐÏÎÑÔÎÏ. HÅÐÏÎÑÔÎÏ ÔÏÌØËÏ ÐÏÞÅÍÕ × ide, ÕÖÅ ÅÓÌÉ ÅÅ ÓÄÅÌÁÌÉ, DO>> ÎÅ ×ÎÅÓÔÉ ×ÓÅ ËÒÙÖÉËÉ.

AV> ôÏÞÎÏ ÏÔ×ÅÔÉÔØ ÍÏÇÕÔ ÔÏÌØËÏ Á×ÔÏÒÙ, Ñ ÖÅ ÍÏÇÕ ÔÏÌØËÏ ×ÙÓËÁÚÁÔØ Ó×ÏÉ AV> ÄÏÇÁÄËÉ. IARÏ×ÃÙ ÔÕÓÕÀÔÓÑ × comp.embedded É ÁËÔÉ×ÎÏ ÏÔ×ÅÞÁÀÔ ÎÁ ×ÓÑËÉÅ ×ÏÐÒÏÓÙ ÐÏÞÅÍÕ É ÏÔÞÅÇÏ. VLV

"Evil will prevail because good is dumb" (c) Space Balls

Hello, Askold Volkov !

á ËÏÐÉÒÏ×ÁÔØ ïúõ ËÏÎÓÔÁÎÔÎÙÅ ÓÔÒÏËÉ ÉÌÉ ÈÏÔÑ ÂÙ ÕËÁÚÁÔÅÌÉ ÎÁ ÎÉÈ ÐÒÏÔÉ×ÏÒÅÞÉÔ ÚÄÒÁ×ÏÍÕ ÓÍÙÓÌÕ. ïÓÏÂÅÎÎÏ, ÅÓÌÉ ÜÔÏ ÎÅ ÏÐÃÉÏÎÁÌØÎÏ.

íÏÖÅÔ Ñ ÏÐÑÔØ ÞÔÏ-ÔÏ ÓÄÅÌÁÌ ÎÅ ÔÁË, ÎÏ Ó ÎÅËÏÔÏÒÏÇÏ ÍÏÍÅÎÔÁ (ÔÏÞÎÅÅ Ó ÍÏÍÅÎÔÁ, ËÏÇÄÁ ÐÏÑ×ÉÌÉÓØ ÍÁÓÓÉ×Ù ÓÔÒÏË) ÓÒÅÄÁ ÓÔÁÌÁ ÒÕÇÁÔØÓÑ, ÞÔÏ × ËÁËÏÍ-ÔÏ ÔÁÍ ÔÉÎÉ ÓÅÇÍÅÎÔÅ ÍÁÌÏ ÍÅÓÔÁ. ñ ÐÏÓÔÁ×ÉÌ ÍÏÄÅÌØ small, ÐÏÓÌÅ ÞÅÇÏ, ÏÎÁ ÓÔÁÌÁ ÒÕÇÁÔØÓÑ ÞÔÏ ÎÅ ÚÎÁÅÔ ËÕÄÁ ÄÅ×ÁÔØ ÓÅÇÍÅÎÔ NEAR_Z ËÁÖÅÔÓÑ. õËÁÚÁÎÉÅ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÅÇÏ ÌÉÎË-ÆÁÊÌÁ ÎÅ ÐÏÍÏÇÌÏ, ÐÏÍÏÇÌÏ ÐÒÏÐÉÓÙ×ÁÎÉÅ × ÎÅÍ ÜÔÏÇÏ ÓÅÇÍÅÎÔÁ. ó Õ×ÁÖÅÎÉÅÍ, äÉÍÁ ïÒÌÏ×.

Привет, 31 января 2004 г., 8:32:59, ты писал(а):

AV> Точно ответить могут только авторы, я же могу только высказать свои AV> догадки. AV> Во-первых, это свежая опция, возможно ее просто не успели внести в IDE к AV> моменту его выпуска. Во-вторых IARовцы очень долго сопротивлялись ее AV> введению, считая идеологически неправильной, и сделали это только под AV> давлением пользователей. И действительно - включение этой опции AV> противоречит AV> стандарту языка.

Это еще каким местом противоречит ?

Всего хорошего.

--

"Dima Orlov" сообщил в новостях следующее:

Я для каждого проекта создаю свой xcl файл, где явным образом все сегменты прописываю, и все из среды компилю - полет нормальный. Модель Small не использую, Tiny достаточно. Причем необходимость собственного xcl у меня вызывается тем, что я компилятор обманываю - слово __no_init использую для внутренней памяти (почему-то авторы его только для внешней задумали), а я не хочу static неявно инициализировать (вроде как стандарт С предусматривает неявную инициализацию нулем всех static переменных, во всяком случае IAR C так делает). А чтобы со строками во флеши оверхеда не было, их надо массивами объявлять: char __flash Tx_Text[]="Text";

А потом уже массив строк: char __flash * Family[3] { Tx_Text, Tx_Text2, Tx_Text3 };

А объявление типа char __flash * Family[3] { "Text", "Text2", "Text3" }; и чтобы без копирования в RAM мне тоже не удалось создать.

Примите уверения в совершеннейшем к Вам почтении

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required