[an error occurred while processing this directive]
[an error occurred while processing this directive]
|
Жук - Mega103, 6 мГц.
На С это выглядит так:
(Внизу - ассемблерный листинг выдаваемый IAR-C)
// инициализация АЦП :
ADMUX = 0; // выбор канала
// 0027 CLR R16
// 07B9 OUT LOW(7),R16
ADCSR = 0xc7;
// 07EC LDI R16,199
// 06B9 OUT LOW(6),R16
.
.
.
// где-то в программе старт АЦП:
ADCSR |= 1 << ADSC; // старт АЦП
// 369A SBI LOW(6),LOW(6)
.
.
.
// где-то в прграмме чтение АЦП по готовности и сброс:
{
word adcdata;
byte b;
if ((ADCSR and (1 << ADIF)) lne 0)
// 349B SBIS LOW(6),LOW(4)
// 36C1 RJMP ?0021
{
b = ADCL;
// 84B1 IN R24,LOW(4)
adcdata = ADCH;
// 25B1 IN R18,LOW(5)
// 3327 CLR R19
adcdata = (adcdata shl 8) or b;
// 322F MOV R19,R18
// 2227 CLR R18
// 082F MOV R16,R24
// 1127 CLR R17
// 202B OR R18,R16
// 312B OR R19,R17
ADCSR |= (1 << ADIF); // сброс флага "READY"
// 349A SBI LOW(6),LOW(4)
}
}
:)
E-mail: info@telesys.ru