Speccy - наш выбор!

Speccy - наш выбор! (http://zx-pk.ru/index.php)
-   Unsorted (http://zx-pk.ru/forumdisplay.php?f=13)
-   -   Микроконтроллеры AVR для начинающих (http://zx-pk.ru/showthread.php?t=11978)

SpecialistMK87 22nd October 2012 14:45

Quote:

Originally Posted by SoftFelix (Post 439002)
перепрограммирую Мегу с этим битом. Помехоустойчивость повыситься? А BODLEVEL оставить пустым (2.7В) или туда тоже галку поставить (4.0В)? Как я понял, это пороги питающего напряжения при которых МК сам блокирует свою работу?

при провале питания до этих значений формируется сброс микроконтроллера. Я бы галку на 4В поставил. Если есть сильные броски по питанию то помехоустойчивость увеличится
Очень рекомендую поставить по входу конденсатор побольше в параллель, хотя бы 1000мкф, затем последовательно дроссель тоже побольше и опять конденсатор в параллель. И к каждому такому еще 0.1 мкФ - высокочастотные шумы гасить

SoftFelix 22nd October 2012 16:55

SpecialistMK87, эх, давно это было... :) Галку поставил на 4В и выставил BODEN. За год девайс сглючил только один раз и то не фатально - динамическая индикация слетела. Передёрнул зажигание и опять всё заработало. С железом ничего не делал, хотя электролиты надо бы туда побольше поставить.

Mifody 22nd October 2012 17:05

а по моему вопросу нет никаких идей? Что скажут гуру?

SpecialistMK87 22nd October 2012 19:26

Quote:

Originally Posted by Mifody (Post 547121)
процедуры w1_read и w1_write работают с одним портом, прописанным при инициализации..

наверно проще всего написать еще две функции которые работают с другим портом :)
а вообще вопрос не очень понятен без исходника

---------- Post added at 18:26 ---------- Previous post was at 18:22 ----------

Quote:

Originally Posted by SoftFelix (Post 547133)
SpecialistMK87, эх, давно это было... :) Галку поставил на 4В и выставил BODEN. За год девайс сглючил только один раз и то не фатально - динамическая индикация слетела. Передёрнул зажигание и опять всё заработало. С железом ничего не делал, хотя электролиты надо бы туда побольше поставить.

критерий истины - эксперимент ;)

Mifody 26th October 2012 16:34

Так, с 1wire разобрался.. Помогите пожалуйста другим советом.. Что то сам никак не могу разобраться...
В общем у меня есть 8 битовых переменных bit0, bit1,.......bit7. И есть unsigned char data. Мне нужно, чтоб bit0 была нулевым битом data, bit1 первым битом data и т.д. Пробовал присвоить data.0=bit0. Ругается Error: the first argument of the '.' operator must be of 'struct' or 'union' type. Но что то я никак не могу разобраться со структурами и объединениями... Надеюсь, внятно задал вопрос...

Vladimir_S 26th October 2012 17:18

Не знаю на чем пишешь, на С - #define bit0 data.0

---------- Post added at 16:18 ---------- Previous post was at 16:04 ----------

Да, bit0...bit7 объявлять не надо.

Mifody 26th October 2012 17:27

Да, на С. CVAVR

Quote:

Originally Posted by Vladimir_S (Post 548050)
#define bit0 data.0

Это получится то же самое. Я как понял, на С нельзя объявить биты как составные части байтовой переменной. Так же нельзя отдельно изменять биты переменной (как я пытался сделать data.0=чего то там..) Преременная должна быть структурой или объединением. Я сегодня пол дня читал про эти структуры, так нифига и не понял..((

Vladimir_S 26th October 2012 17:44

Quote:

Originally Posted by Mifody (Post 548054)
Это получится то же самое. Я как понял, на С нельзя объявить биты как составные части байтовой переменной. Так же нельзя отдельно изменять биты переменной (как я пытался сделать data.0=чего то там..) Преременная должна быть структурой или объединением. Я сегодня пол дня читал про эти структуры, так нифига и не понял..((

На С можно все, только надо знать как. На МicroC например data.0 не прокатит, надо data.F0. Также и синтаксис #define у разных С немного отличаются.

---------- Post added at 16:44 ---------- Previous post was at 16:31 ----------

Кстати объявляются не только отдельные биты переменной, но и отдельные биты порта микроконтроллера.

SpecialistMK87 26th October 2012 20:32

struct test_struc {
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;
};
static struct test_struc data;

...

// а теперь когда надо обратиться к битам data
// пишешь
data.bit0 = 0;


All times are GMT +4. The time now is 05:16.

Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.