Vny4ek 0 8 декабря, 2009 Опубликовано 8 декабря, 2009 · Жалоба Подскажите плиз инициализирую переменные int temp; unsigned int i; unsigned int f; bit s[64]; // масив из 64 бит при компиляции пишет missing ';' подскажите плиз почему, хотя если напишу int s[64]; все работает, но мне не нужно столько места в памяти если оперирую только 0 и 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Andron_ 0 8 декабря, 2009 Опубликовано 8 декабря, 2009 · Жалоба тип данных bit - занятное ноу-хау... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Serj78 0 8 декабря, 2009 Опубликовано 8 декабря, 2009 · Жалоба Из-за особенностей адресации массивов в CV битовый массив нельзя сделать "в лоб". или используйте большое количество битовых переменных, или накладывайте маски :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vny4ek 0 8 декабря, 2009 Опубликовано 8 декабря, 2009 · Жалоба ткните плиз в пример где можно посмотреть как это сделано, и второй важный вопрос, внутренний RC-генератор, обязательно калибровать, мне точно не особо нужна +- 10% вполне устроит например. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mempfis_ 0 8 декабря, 2009 Опубликовано 8 декабря, 2009 · Жалоба но мне не нужно столько места в памяти если оперирую только 0 и 1 Попробуйте перейти к битовым полям в структуре (правда не знаю поддерживает их cvavr) struct stMyBits{ unsigned char bit0:1; unsigned char bit1:1; unsigned char bit2:1; unsigned char bit3:1; ............................. unsigned char bitN:1; } MyBits; Ну и доступ MyBits.bit0=1; MyBits.bit3=0; RC-цепочку калибровать надо. Я в меге8 наблюдал почти 50процентное отклонение от 1МГц в сторону уменьшения. Да и сложностей там никаких OSCALL = калибровочная константа для выбранной частоты Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vny4ek 0 9 декабря, 2009 Опубликовано 9 декабря, 2009 (изменено) · Жалоба А подскажите плиз, калбировка это для каждого камня отдельная или один раз откалибровал в прошивке на заданной температуре и напряжении питания и ок? И способ калибровки без частотомера не подскажите? Изменено 9 декабря, 2009 пользователем Vny4ek Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Serj78 0 9 декабря, 2009 Опубликовано 9 декабря, 2009 · Жалоба А подскажите плиз, калбировка это для каждого камня отдельная или один раз откалибровал в прошивке на заданной температуре и напряжении питания и ок? И способ калибровки без частотомера не подскажите? калибровка с точностью до 10% только внутри одной партии. от температуры уплывает в одну сторону, но все равно не одинаково. берете наручные часы - выводите мигалку на светодиод, считайте вспышки и меряйте секундомером.. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vny4ek 0 9 декабря, 2009 Опубликовано 9 декабря, 2009 (изменено) · Жалоба Угу спасибо! еще такой вопрос, а фунции delay.h тоже завязаны на этом генераторе, тоесть он опирается на RCвнутренний когда их использует? Изменено 9 декабря, 2009 пользователем Vny4ek Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mrKirill 1 9 декабря, 2009 Опубликовано 9 декабря, 2009 · Жалоба Угу спасибо! еще такой вопрос, а фунции delay.h тоже завязаны на этом генераторе, тоесть он опирается на RCвнутренний когда их использует? При компиляции проекта в свойствах (Project - Configure) указываете тактовую частоту контроллера. Эта частота вашего тактующего источника, будет это RC, кварц или внешний источник - не играет роли. Библиотека delay.h основывается на той частоте, что указана в свойствах. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
demiurg_spb 0 9 декабря, 2009 Опубликовано 9 декабря, 2009 · Жалоба bit s[64]; // масив из 64 бит ... int s[64]; все работает, но мне не нужно столько места в памяти если оперирую только 0 и 1 А зачем int? Используйте unsigned char (uint8_t). Вы собираетесь использовать в прерываниях эти ваши флаги? Если да. То битовые переменные, как и всё что больше или меньше байта - не лучший вариант. Придётся всё это хозяйство оборачивать в critical sections для обеспечения атомарности. Хорошее правило: для 8-ми битного MCU используй 8-ми битные переменные, конечно, если это возможно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться