Страница 1 из 1

Нужна помощь

СообщениеДобавлено: 30 май 2011, 20:28
Katty
Здравствуйте, пишу диплом по этому контроллеру и столкнулась с такой проблемой: При разборе кода тестовой программы с дискретными портами стало непонятно следующее...

unsigned char get_din ( unsigned char n )
{
unsigned char mask = 1;

if( n > 15 ) return 0;

mask <<= n;

if( get_dins() & mask )
return 1;
else
return 0;

почему мы переменной mask присваиваем тип char , когда этот тип содержит только 8 бит а у нас 16 портов то есть при последующей процедуре побитового смещения при номере пота скажем 8 у нас переменная mask превратится в ноль..

Re: Нужна помощь

СообщениеДобавлено: 31 май 2011, 00:18
DinKa
Да, верно. Замените тип mask на unsigned short.

Re: Нужна помощь

СообщениеДобавлено: 02 июн 2011, 10:18
Katty
Подскажите пожалуйста как организовать доступ к 19му входу АЦП при инициализации самого АЦП.
Заранее благодарю. :Rose:

Re: Нужна помощь

СообщениеДобавлено: 02 июн 2011, 13:08
DinKa
Katty писал(а):Подскажите пожалуйста как организовать доступ к 19му входу АЦП при инициализации самого АЦП.
Заранее благодарю. :Rose:

АЦП в МК стенда 8-канальный 12-разрядный.
Что такое "19-й вход АЦП"?

Re: Нужна помощь

СообщениеДобавлено: 02 июн 2011, 14:19
Katty
извините, 7 канал ацп.

Re: Нужна помощь

СообщениеДобавлено: 02 июн 2011, 14:46
Katty
и еще вопрос...есть ли в этой стенде аппаратная реализация ШИМ?

Re: Нужна помощь

СообщениеДобавлено: 02 июн 2011, 20:32
DinKa
Для настройки 7 канала АЦП (как и остальных) нужно определить младшие 3 бита SFR-регистра ADCCON2 (=7) микроконтроллера ADuC812. Посмотрите спецификацию на МК ADuC812 и пример работы с АЦП/ЦАП в SDK-1.1.
Аппаратного ШИМа нет.

Re: Нужна помощь

СообщениеДобавлено: 03 июн 2011, 09:46
Katty
Спасибо вам за помощь