Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Aden ADSC adfr ADIF adie adps2 adps1 adps20




АDEN - бит разрешения, 0 - АЦП выключен, 1 - АЦП включен.

ADSC - бит запуска преобразования, в режиме однократного преобразования единица должна записываться при каждом запуске, в циклическом режиме - один раз для запуска первого преобразования.

ADFR - бит режима преобразования, 1 - циклический режим, 0 - однократ­ный.

ADIF - флаг прерывания, устанавливается после завершения преобразова­ния и записи кода в выходной регистр АЦП. Очищается автоматиче­ски при вызове вектора прерывания либо записью 1 в этот бит. АБ1Е - бит разрешения прерывания АЦП, 1 разрешает прерывание. АБР82, АБР81, АБР820 - биты управления тактовой частотой АЦП, опре­деляют коэффициент деления тактовой частоты микроконтроллера следующим образом:

0 - коэффициент деления 2,

1 - коэффициент деления 2,

10 - коэффициент деления 4,

11 - коэффициент деления 8,

100 - коэффициент деления 16,

101 коэффициент деления 32,

110- коэффициент деления 64,

111- коэффициент деления 128.

 

Дополнительное снижение уровня помех для повышения точности преоб­разования можно получить, если на время преобразования АЦП приостано­вить работу процессора в микроконтроллере переходом в режим "idle". Воз­врат в рабочее состояние должна обеспечивать подпрограмма обработки пре­рывания АЦП. Более подробную информацию о работе АЦП можно найти в руководствах фирмы АТМЕL.

Для управления работой АЦП подпрограмма его вектора прерывания должна выполнить чтение результатов завершенного цикла преобразования из выходных регистров, определить через регистр мультиплексора номер следующего входного канала и произвести запуск следующего цикла преобразования.

Простенькая программка иллюстрирует работу ШИМ в режиме Fast PWM таймера Timer1 и АЦП. Написана на ассемблере, компилируется в AVR Studio. Для микроконтроллера ATmega8, который тактируется внутренним RC - генератором на 1МГц.

Исходный текст программы на ассемблере, под AVR Studio:

01.; Atmega8, crystal 1MHZ (internal)

02.; Timer Counter 1

03.; Fast PWM & ADC

04.

05..include "m8def.inc"

06.

07..def wreg =R16

08..def duration =R17

09..def wreg2 =R18

10.

11.

12.init:

13.

14. ldi wreg,low(RAMEND)

15. out SPL,wreg

16.

17. ldi wreg,high(RAMEND); Stack Pointer = $45F

18. out SPH,wreg

19.

20. cli; запретить прерывания

21.

22.

23. ldi wreg, 0b10000011; Вкл. Ацп, Однокр. преобр., Прерывание запрещено, СК/8 (125 kHz)

24. out ADCSR, wreg

25.

26. ldi wreg, 0b01101110; AVcc, Внеш. конд. на Aref, Выравн. по лев. краю, channel 1.23V bg

27. out ADMUX, wreg

28.

29. rcall adc_convert

30.

31.

32.;******************* TIMER1 ***********************

33.

34. ldi wreg,0x00

35. out PORTB,wreg; Запись 0 в порт

36.

37. ldi wreg,0b00000010; PortB.1 (OC1A) - Output

38. out DDRB,wreg

39.

40.

41. ldi wreg, 0b10000001; неинв. 8 битный ШИМ

42. out TCCR1A, wreg

43.

44. ldi wreg, 0b00001001; CK/1

45. out TCCR1B, wreg

46.

47. ldi wreg, 0b00000000

48. out TIMSK, wreg

49.

50.

51.main:

52.

53. ldi wreg, 250; 25mS

54. rcall delay

55.

56. ldi wreg, 0b01100101; ADC Channel 5 (PortC.5; pin 28)

57. rcall adc_convert

58.

59. ldi wreg2, 0x00

60. out OCR1AH, wreg2

61.

62. out OCR1AL, wreg

63.

64.

65.rjmp main

66.

67.

68.

69.;*********************** DELAYS **************************

70.

71.delay:; 0.1mS * wreg

72. ldi duration, 24

73. cycle:

74. nop

75. dec duration

76. brne cycle

77. dec wreg

78. brne delay

79.ret

80.

81.

82.;********************** AD CONVERTION *******************

83.

84.adc_convert:

85.

86. out ADMUX, wreg; wreg contains channel

87.

88. sbi ADCSR, ADSC; Start Convertion

89. sbic ADCSR, ADSC

90. rjmp PC-1

91. in wreg, ADCL; просто формальность (первым всегда читается ADCL)

92.

93. in wreg, ADCH; wreg contains result

94.

95.ret

 

 





Поделиться с друзьями:


Дата добавления: 2016-10-06; Мы поможем в написании ваших работ!; просмотров: 381 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Начинать всегда стоит с того, что сеет сомнения. © Борис Стругацкий
==> читать все изречения...

2300 - | 2053 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.012 с.