Цитата(condor @ Mar 6 2007, 19:13)

Делаю свою первый проект на ADUC'e.
Из-за неполного даташита появились непонятки.
---- PWM ----
В маленьком корпусе ШИМ напрямую наружу не выходит. В ДШ написано, что можно вывести через PLA.
Сделал так:
Код
PLAELM8 = 0x0035;
PLAELM15 = 0x0059;
PLAELM0 = 0x0059;
GP1CON = 0x3 << 28; // (PWM)PLAO[0] -> P1.7
GP3CON = 0x1; // PWM0 -> P3.0(PLAI[8])
Но смущает то, что в ИАРовском хедере ioaduc7021.h нету описания регистров ШИМа. Он в этом контроллере присутствует?
Утилита PLA Tool тоже ведет себя непонятно. При записи в PLAELM8 0x0035 (т.е. подключение ко входу элемента8 P3.0 (PWM)) ругается "The GPIO pins you selected as inputs to the elements of Block1 have been disabled as they are not available on ADuC2071". Это утилита кривая или действительно можно подключать к PLA только выведенные наружу входы?
---- ADC ----
Нужно с максимальной скоростью оцифровать ~1ms сигнала и сложить в буфер для дальнейшей обработки.
В ДШ нигде не нашел описание непрерывного режима преобразований (continious mode). Я конечно догадываюсь что это, но хотелось бы уточнить

.
В примере с фтп Analog'a при использовании непрерывного преобразования каждый раз переключают каналы 0 и 1. Это просто измеряют два разных сигнала, или к обоим каналам подключен один и тот же сигнал, а такое переключение дает выграш в быстродействии?
Код
ADCCON = 0x4E4; // Config: fADC/2, acq. time = 2 clocks => ADC Speed = 1MSPS
while(1)
{ // start continuous conversion
for (i=0; i <2; i++)
{
while (!ADCSTA){} // wait for end of conversion
ADCDATA[i] = (ADCDAT >> 16);
if (ADCCP == 0) ADCCP = 1; // change channel
else ADCCP = 0;
}
}
PWM - работает напрямую (настроить порты ввода-вывода):
GP3CON = 0x00000011; // Enable the PWM outputs to the GPIO
для моего случая:
PWMCON = 0x0005; //0x0001; // 0x01 is enabled //0x05
PWMDAT0=_F_Ram_P_Shim; //мои значения частоты модуляции и гарантированной паузы
PWMDAT1=_F_Ram_Pt_Shim;
PWMCFG = 0x0008; //
PWMA = 0x0000; // A channel
PWMB= 0x0000; // B channel
PWMC= 0x0000; // C channel
PWMEN = 0x010F; // Enable (0=enabled)
обратите внимание - значения модуляции СО ЗНАКОМ (0x00000000 - меандр)
ADC:
REFCON=0x01; //включ. внутр. опорн напр
ADCCP=0x02; //выбор канала
ADCCN=0x00; //---------
ADCCON = 0xA4; //непрерывный режим
остальное как вы и написали выше
у меня один даташит на ADuC702x. (есть и на русском)
/примеры для ADuC7024 (в KEIL )/