atmega128 и датчики тока

Привет Dmitry!

06 Май 06 года (а было тогда 19:35) Dmitry Orlov в своем письме к Dimmy Timchenko писал:

DT>> В общем, компилятор знает, что это биты, и чтО именно можно с DT>> ними делать на данном процессоре. DO> Значит вполне адекватная замена, важно, чтобы в соответствующе .h они DO> были правильно прописаны.

Может я искал плохо, но не нашел. Т.е. :

============= кут =============== #include <stdint.h>

#include <inttypes.h>

#include <stdio.h>

#include <stdlib.h>

#include <avr\io.h>

#include <avr\interrupt.h>

#include <avr\signal.h>

#include <avr/eeprom.h>

PA1.PORTA =1;

============= кут ===============

не работает.

С уважением, Andrey 07 Май 06 года

formatting link
E-Mail:a_biv<саба>list,ru Jabber:Andrey_B@jabber,ru |СQ:226793191

Reply to
Andrey Bivshih
Loading thread data ...

 X-Virus-Scanned: amavisd-new at bezeqint.net

Hello, Alex Mogilnikov! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Sun, 07 May 2006 02:32:32

+0400:

AB>>>>>>>> Hо вот GCC с Hitech даже нельзя сравнивать. AM>>>>> Hу вот, значит gcc и hitech вполне можно сравнивать. AM>>>>> :) DO>>>> Hа разных архитектурах это не слишком осмысленно... AM>>> Про архитектуры я не понял,

DO>> А что, gcc уже есть для pic, причем такой, что с HiTech можно DO>> сравнивать?

AM> В сабже - atmega128. Я пропустил поворот нити AM> повествования? :)

Да, там, где начал HiTech обсуждать.

AM> Если Hitech только для pic, тогда действительно сревнение AM> малоосмысленно...

Не только

formatting link
но для AVR его нет. И я не знаю на сколько он хорош для других (не PIC) архитектур.

dima

formatting link

Reply to
Dmitry Orlov

Привет Andrey!

07 May 06 07:54, Andrey Bivshih писал Alex Mogilnikov:

AB> GCC и Hitech созданы для примерно равных контроллеров, значит и их AB> возможности должны быть примерно одинаковы.

Тем лучше. Как ты теперь знаешь, оба позволяют писать <имя бита>=1. Это дает основания подозревать, что твои отрицательные ощущения были вызваны не столько недостатками компилятора, сколько неумением им пользоваться...

Всего наилучшего, [Team PCAD 2000] Алексей М. ... Я удалю твою жажду. Без возможности восстановления.

Reply to
Alex Mogilnikov

Пpивет, Andrey!

*** 07 May 06 07:54, Andrey Bivshih wrote to Vladislav Baliasov:

VB>> Hу, посмотри как бегали регистры, относящиеся к EEPROM данных - VB>> на F84, на F87x, на F628.

AB> Да, но только в F84 в 87х и 628 с EEPROM вроде одинаково.

Различается во всех трех.

VB>> Или на регистр(ы) конфигурации компараторов...

AB> Из названных, компаратор только у 628 есть.

Сравни с теми, где тоже есть. С F688, например.

AB>>> Даже если перефирия усложняется.

VB>> Hу вот посмотри эту совместимость применительно к CMCON и VB>> CMCON1/CMCON2...

AB> Это в каких кристаллах ?

628 и 688. Пардон, имелись в виду CMCON0/CMCON1. Или сравни, где располагается CMCON в 628 и 630.

AB> Hу не легла команда на задачу. :)

VB>> ? Так ты бы сам первый и завопил - "какой идиотизм писать в VB>> регистры флагов с активными "1" единицы ?!"

AB> Так я это и сказал. :-) Hу если 1 - прерывание случилось, 0 - нету. Hе AB> логичнее всеже было, отменять прерывание, путем записи 0 ?

Hо тогда получается, что ты назначаешь не случившиеся прерывания записью "1" в остальные биты.

с уважением Владислав

Reply to
Vladislav Baliasov

Привет Vladislav!

07 Май 06 года (а было тогда 20:59) Vladislav Baliasov в своем письме к Andrey Bivshih писал:

VB>>> Hу, посмотри как бегали регистры, относящиеся к EEPROM данных - VB>>> на F84, на F87x, на F628.

AB>> Да, но только в F84 в 87х и 628 с EEPROM вроде одинаково.

VB> Различается во всех трех.

VB> 628 и 688. Пардон, имелись в виду CMCON0/CMCON1. Или сравни, где VB> располагается CMCON в 628 и 630.

Да, точно. Все не безгрешны.

AB>> Hу не легла команда на задачу. :)

VB>>> ? Так ты бы сам первый и завопил - "какой идиотизм писать в VB>>> регистры флагов с активными "1" единицы ?!"

AB>> Так я это и сказал. :-) Hу если 1 - прерывание случилось, 0 - AB>> нету. Hе логичнее всеже было, отменять прерывание, путем записи 0 AB>> ?

VB> Hо тогда получается, что ты назначаешь не случившиеся прерывания VB> записью "1" в остальные биты.

А почему, остальные биты мы трогать не будем.

С уважением, Andrey 08 Май 06 года

formatting link
E-Mail:a_biv<саба>list,ru Jabber:Andrey_B@jabber,ru |СQ:226793191

Reply to
Andrey Bivshih

Привет Alex!

07 Май 06 года (а было тогда 15:17) Alex Mogilnikov в своем письме к Andrey Bivshih писал:

AB>> GCC и Hitech созданы для примерно равных контроллеров, значит и AB>> их возможности должны быть примерно одинаковы.

AM> Тем лучше. Как ты теперь знаешь, оба позволяют писать <имя AM> бита> =1. Это дает основания подозревать, что твои отрицательные AM> ощущения были вызваны не столько недостатками компилятора,

В Hitech - я просто писал RB0 = 1; ,а в GCC написать PB0 = 1; или PB0.PORTB = 1; не могу. Если я что-то не так делаю, объясни.

AM> сколько неумением им пользоваться...

Т.е. если в автомобиле не один рычаг для переключения 5 скоростей, а

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

С уважением, Andrey 08 Май 06 года

formatting link
E-Mail:a_biv<саба>list,ru Jabber:Andrey_B@jabber,ru |СQ:226793191

Reply to
Andrey Bivshih

Hello Andrey.

Mon May 08 2006 15:24, Andrey Bivshih wrote to Alex Mogilnikov:

AB> В Hitech - я просто писал RB0 = 1; ,а в GCC написать PB0 = 1; или AB> PB0.PORTB = 1; не могу. Если я что-то не так делаю, объясни.

Опять же не уверен насчёт GCC: он поддерживает стандарт Embedded C++? Если да, то можно пользоваться "плюсовыми" безымянными структурами и объединениями. Возможно, предварительно их описав, если разработчики компилятора этого не сделали. Примеры я приводил...

Dimmy.

Reply to
Dimmy Timchenko

Привет Andrey!

08 May 06 16:24, Andrey Bivshih писал Alex Mogilnikov:

AM>> Тем лучше. Как ты теперь знаешь, оба позволяют писать <имя AM> бита>> =1. Это дает основания подозревать, что твои отрицательные AM>> ощущения были вызваны не столько недостатками компилятора,

AB> В Hitech - я просто писал RB0 = 1; ,а в GCC написать PB0 = 1; или AB> PB0.PORTB = 1; не могу. Если я что-то не так делаю, объясни.

Как я могу объяснить, что ты делаешь не так, если ты не показываешь свой код? Приведи код, обсудим. Как сделать, чтобы было так, здесь уже писали. Вот вариант на языке C:

========== test.c ========== typedef struct { unsigned char bit0 : 1; unsigned char bit1 : 1; unsigned char bit2 : 1; unsigned char bit3 : 1; unsigned char bit4 : 1; unsigned char bit5 : 1; unsigned char bit6 : 1; unsigned char bit7 : 1; } bits;

#define PORTB (*(bits*)0x18) #define PB0 PORTB.bit0

void f(void) { PB0 = 1; } ============================

Вот вариант на языке C++:

======== test.cpp ========== class bit { public: bit(void) {} bit(int x): value(x) {} bit & operator=(int x) { value = x; return *this; } operator int(void) const { return value ? 1 : 0; } private: bool value; };

bit x;

void f(void) { x = 1; } ============================

Заметь, что оба варианта используют только стандартные средства языка.

AB> Т.е. если в автомобиле не один рычаг для переключения 5 скоростей, а AB> 5 рычягов, каждый для своей скорости, - это хорошая машина, а если AB> ездить не удобно - просто от неумелого пользования.

Если тебе неудобно, не пользуйся. Hо ты в качестве обоснования своего неудобства привел несоответствующий действительности аргумент, что в gcc нельзя написать <имя бита>=1;, а это вводит других читателей в заблуждение.

Всего наилучшего, [Team PCAD 2000] Алексей М. ... Чудо-йогурт Био. Чемпион среди какао.

Reply to
Alex Mogilnikov

Пpивет, Andrey!

*** 08 May 06 16:10, Andrey Bivshih wrote to Vladislav Baliasov:

VB>> 628 и 688. Пардон, имелись в виду CMCON0/CMCON1. Или сравни, где VB>> располагается CMCON в 628 и 630.

AB> Да, точно. Все не безгрешны.

А почему ползают регистры периферии в AVR, тоже понятно и объяснимо. Увы, нет достаточной разрядности для адресации...

VB>> Hо тогда получается, что ты назначаешь не случившиеся прерывания VB>> записью "1" в остальные биты.

AB> А почему, остальные биты мы трогать не будем.

А как это сделать при байтовой операции out ? А битовыми sbi/cbi туда не дотянуться...

с уважением Владислав

Reply to
Vladislav Baliasov

Привет Alex!

08 Май 06 года (а было тогда 19:32) Alex Mogilnikov в своем письме к Andrey Bivshih писал:

AM> Привет Andrey!

AM> 08 May 06 16:24, Andrey Bivshih писал Alex Mogilnikov:

AM>>> Тем лучше. Как ты теперь знаешь, оба позволяют писать <имя AM> бита>>> =1. Это дает основания подозревать, что твои отрицательные AM>>> ощущения были вызваны не столько недостатками компилятора,

AB>> В Hitech - я просто писал RB0 = 1; ,а в GCC написать PB0 = 1; AB>> или PB0.PORTB = 1; не могу. Если я что-то не так делаю, AB>> объясни.

AM> Как я могу объяснить, что ты делаешь не так, если ты не AM> показываешь свой код? Приведи код, обсудим.

Я имел в виду абстрактный пример. Без предварительного описания этих битов.

===== кусь =============

AM> Заметь, что оба варианта используют только стандартные средства AM> языка.

Язык у них один - Си. А я говорил про компиляторы. Т.е. все дело в *.h. В Hitech оно есть, в GCC, я так понял, нету. Значит тут GCC все же хуже, так как надо ручками.

AM> Если тебе неудобно, не пользуйся. Hо ты в качестве обоснования AM> своего неудобства привел несоответствующий действительности аргумент, AM> что в gcc нельзя написать <имя бита>=1;, а это вводит других читателей AM> в заблуждение.

Хорошо. Я не четко выразил свою мысль.

С уважением, Andrey 08 Май 06 года

formatting link
E-Mail:a_biv<саба>list,ru Jabber:Andrey_B@jabber,ru |СQ:226793191

Reply to
Andrey Bivshih

 X-Virus-Scanned: amavisd-new at bezeqint.net

Hello, Alex Mogilnikov! You wrote in conference fido7.ru.embedded to Andrey Bivshih on Mon, 08 May 2006 18:32:22

+0400:

AB>> В Hitech - я просто писал RB0 = 1; ,а в GCC написать PB0 = AB>> 1; или PB0.PORTB = 1; не могу. Если я что-то не так делаю, AB>> объясни.

AM> Как я могу объяснить, что ты делаешь не так, если ты не AM> показываешь свой код? Приведи код, обсудим. Как сделать, чтобы AM> было так, здесь уже писали. Вот вариант на языке C:

[Sorry, skipped]

AM> Заметь, что оба варианта используют только стандартные AM> средства языка.

Это да, собственно и в хидерах picc почти так и определены все эти биты портов. Но вот описывать бит на архитектуре, которая поддерживает работу с битами таки удобней типом bit, хотя это конечно такие мелочи, которые не стоят обсуждения.

dima

formatting link

Reply to
Dmitry Orlov

Привет Andrey!

08 May 06 19:38, Andrey Bivshih писал Alex Mogilnikov:

AM>> Как я могу объяснить, что ты делаешь не так, если ты не AM>> показываешь свой код? Приведи код, обсудим.

AB> Я имел в виду абстрактный пример. Без предварительного описания этих AB> битов.

:) Так не бывает. Декларации - это как раз самое интересное. Они определяют выбранную парадигму. Особенно в C++.

AM>> Заметь, что оба варианта используют только стандартные AM>> средства языка.

AB> Язык у них один - Си.

Hе знаю как HiTech, а GCC - это коллекция компиляторов разных языков, в том числе C и C++.

AB> А я говорил про компиляторы. Т.е. все дело в AB> *.h. В Hitech оно есть, в GCC, я так понял, нету. Значит тут GCC все AB> же хуже, так как надо ручками.

Почему обязательно русками? Можно взять готовую библиотеку. GCC - это только компилятор, с ним в комплекте идут только завязанные на компилятор хедеры: float.h, iso646.h, limits.h, stdarg.h, stdbool.h, stddef.h, syslimits.h, unwind.h, varargs.h и вроде бы все. Предполагается, что пользователь компилятора установит себе библиотеки, содержащии все недостающее. Если ты установил библиотеку, и она тебе не подошла (оказалась неудобной), все претензии к авторам библиотеки, а не компилятора. Можно или найти другую библиотеку, или сделать самому ручками. Как ты видел в примерах, это несложно.

Всего наилучшего, [Team PCAD 2000] Алексей М. ... G8: иногда лучше дирижировать, чем говорить.

Reply to
Alex Mogilnikov

 X-Virus-Scanned: amavisd-new at bezeqint.net

Hello, Alex Mogilnikov! You wrote in conference fido7.ru.embedded to Andrey Bivshih on Mon, 08 May 2006 23:47:15

+0400:

AM>>> Как я могу объяснить, что ты делаешь не так, если ты не AM>>> показываешь свой код? Приведи код, обсудим.

AB>> Я имел в виду абстрактный пример. Без предварительного AB>> описания этих битов.

AM> :) Так не бывает. Декларации - это как раз самое AM> интересное.

Что тут интересного-то?

AM> Они определяют выбранную парадигму. Особенно в C++.

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

AM>>> Заметь, что оба варианта используют только стандартные AM>>> средства языка.

AB>> Язык у них один - Си.

AM> Hе знаю как HiTech, а GCC - это коллекция компиляторов AM> разных языков, в том числе C и C++.

Да зачем тут С++, когда речь о обращении к битам регистров идет?

AB>> А я говорил про компиляторы. Т.е. все дело в *.h. В Hitech AB>> оно есть, в GCC, я так понял, нету. Значит тут GCC все же AB>> хуже, так как надо ручками.

AM> Почему обязательно русками? Можно взять готовую

А чем? Есть готовые заголовки для всех процессоров?

AM> Если ты установил библиотеку, и она тебе не подошла (оказалась AM> неудобной), все претензии к авторам библиотеки, а не AM> компилятора.

Мне как пользователю инструмента безразлично кто там чего автор. Интересует весь пакет в сборе, а не его части.

AM> Можно или найти другую библиотеку, или сделать самому ручками. Как ты видел в AM> примерах, это несложно.

Но весьма трудоемко.

dima

formatting link

Reply to
Dmitry Orlov

Никогда бы не подумал...

Reply to
Kirill Frolov

Привет Dmitry!

09 May 06 00:10, Dmitry Orlov писал Alex Mogilnikov:

AM>> :) Так не бывает. Декларации - это как раз самое AM>> интересное.

DO> Что тут интересного-то?

Если Андрей пишет, к примеру, PB0 = 1; и это "не работает", чтобы узнать почему, надо знать декларацию этого PB0.

DO> Речь шла об именовании ресурсов конкретного процессора, а не о DO> парадигмах.

Ресь шла о том, что нельзя писать <имя>=1;.

DO> Да зачем тут С++, когда речь о обращении к битам регистров идет?

Андрей не уточнял, на каком языке он хотел бы это писать.

AM>> Почему обязательно русками? Можно взять готовую DO> А чем? Есть готовые заголовки для всех процессоров?

Есть готовые библиотеки с декларациями. Для всех ли там процессоров, я не знаю, не интересовался.

AM>> Если ты установил библиотеку, и она тебе не подошла (оказалась AM>> неудобной), все претензии к авторам библиотеки, а не AM>> компилятора.

DO> Мне как пользователю инструмента безразлично кто там чего автор. DO> Интересует весь пакет в сборе, а не его части.

Ради бога. Только мне кажется, когда говоришь обо всем пакете, называй весь пакет. Андреем же был назван только gcc, а это компилятор и ничего больше.

Всего наилучшего, [Team PCAD 2000] Алексей М. ... Собака - вдруг человека...

Reply to
Alex Mogilnikov

Привет Vladislav!

08 Май 06 года (а было тогда 19:38) Vladislav Baliasov в своем письме к Andrey Bivshih писал:

VB>>> Hо тогда получается, что ты назначаешь не случившиеся прерывания VB>>> записью "1" в остальные биты.

AB>> А почему, остальные биты мы трогать не будем.

VB> А как это сделать при байтовой операции out ?

Да так же, как и сейчас. Или я чего-то не догоняю. Как в пиках, например. Прочитал, модифицировал, записал назад

VB> А битовыми sbi/cbi туда не дотянуться...

Понятно, даже если бы и можно было, они работают - чтение-модификация- запись, и сбрасывают/устанавливавают все биты кроме указанного, при такой схеме.

С уважением, Andrey 09 Май 06 года

formatting link
E-Mail:a_biv<саба>list,ru Jabber:Andrey_B@jabber,ru |СQ:226793191

Reply to
Andrey Bivshih

Hello, Alexandr! You wrote to Andrey Bivshih on Sat, 06 May 2006 11:03:55 +0600:

AB>> Короче, не удивительно, что авр дешевле пиков. Так, что в AB>> некотором роде - паритет. :) AT> Hу насчет "дешевле" - это бабушка надвое сказала. Сильно от AT> конкретных кристаллов зависит и от места покупки, и от ROHS. AT> Смотрим у спекулянотов (Диджикей), количество - "адын штук" : AT> Мега128 - $15 AT> pic18f6720 $19 ... AT> Смотрим у других спекулянтов - у Фарнелла, количество - тоже "адын AT> штук". AT> АТМега128 - 14 фунтов обычная и 8.13 - ROHS. AT> pic18f8720 - 8.5 фунтов обычный, 9.50 - ROHS У райхельта: ATMega128-16TQ - 8.90? PIC18F8720-IPT - 18.60? AT90CAN128 - ROHS - 16.10?

With best regards, Andrej Arnold. E-mail: snipped-for-privacy@aol.com

Reply to
Andrej Arnold

Привет Alex!

09 Май 06 года (а было тогда 00:47) Alex Mogilnikov в своем письме к Andrey Bivshih писал:

AB>> Я имел в виду абстрактный пример. Без предварительного описания AB>> этих битов.

AM> :) Так не бывает. Декларации - это как раз самое интересное. Они AM> определяют выбранную парадигму.

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

AM> Особенно в C++.

Hу, до этого я еще не дошел.

AM> Hе знаю как HiTech, а GCC - это коллекция компиляторов разных AM> языков, в том числе C и C++.

Я говорил про конкретный GCC и конкретный Hitech.

AB>> А я говорил про компиляторы. Т.е. все дело в AB>> *.h. В Hitech оно есть, в GCC, я так понял, нету. Значит тут GCC AB>> все же хуже, так как надо ручками.

AM> Почему обязательно русками? Можно взять готовую библиотеку.

Hу ладно, искать. Все равно, дополнительные телодвижения. Тем более все усугубляется тем, что авторы разные.

AM> GCC - AM> это только компилятор, с ним в комплекте идут только завязанные на AM> компилятор хедеры: float.h, iso646.h, limits.h, stdarg.h, stdbool.h, AM> stddef.h, syslimits.h, unwind.h, varargs.h и вроде бы все. AM> Предполагается, что пользователь компилятора установит себе AM> библиотеки, содержащии все недостающее.

Я рассматриваю все это, не много с другой позиции. Для меня это в первую очередь инструмент для достижения цели кратчайшим путем. И желательно, чтоб этот инструмент был бы еще удобным и приятным. Можно конечно, библиотеки найти, или свои написать, или вообще подучиться и компилятор свой написать. Такой подход, на мой взгляд, справедлив в двух лучаях, когда сам процес настройки/деклараций сам доставляет удовольствие - радиолюбительский подход. Второй случай - наоборот, для очень больший и длительных проектов, когда нужно учесть редкие специфичьные моменты.

AM> Можно или найти другую библиотеку, или AM> сделать самому ручками. Как ты видел в примерах, это несложно.

При всех равных, Hitech не требует траты времени еще и на это. Hо, вобщем, это справедливо, только для наших реалий. Т.к. за Hitech хотят денег, а GCC бесплатен. И по большому счету их вообще сравнивать нельзя. :)

С уважением, Andrey 09 Май 06 года

formatting link
E-Mail:a_biv<саба>list,ru Jabber:Andrey_B@jabber,ru |СQ:226793191

Reply to
Andrey Bivshih

Пpивет, Andrey!

*** 09 May 06 13:35, Andrey Bivshih wrote to Vladislav Baliasov:

VB>>>> Hо тогда получается, что ты назначаешь не случившиеся VB>>>> прерывания записью "1" в остальные биты.

AB>>> А почему, остальные биты мы трогать не будем.

VB>> А как это сделать при байтовой операции out ?

AB> Да так же, как и сейчас. Или я чего-то не догоняю. AB> Как в пиках, например. Прочитал, модифицировал, записал назад

А кто может гарантировать, что между этими командами не изменится содержимое и ты не сбросишь "лишний" флаг ?

VB>> А битовыми sbi/cbi туда не дотянуться...

AB> Понятно, даже если бы и можно было, они работают - чтение-модификация- AB> запись, и сбрасывают/устанавливавают все биты кроме указанного, при AB> такой схеме.

Вот именно.

с уважением Владислав

Reply to
Vladislav Baliasov

Sat May 06 2006 18:27, Maxim Tserkovniy wrote to Yuriy K:

MT>>> Так я потому компаpатоp и поставил, чтобы отловить увеличение тока MT>>> еще до того, как ток успеет подняться выше кpитического уpовня

YK>> У тебя _КЗ_. Откуда возьмется _плавное_ повышение тока? 8-0

MT> Hу так ведь полуволна с 0 начинается. Да и всякое пpевышение MT> потpебляемого тока не начинается абсолютно сpазу. Этому способствует MT> постепенное, хоть и быстpое повышение тока

Что ты будешь делать увидев плавное повышение тока? Выключать cимистор? 8-0

Reply to
Yuriy K

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.