Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
12.04.2007, 22:08
|
|
Прохожий
Регистрация: 12.04.2007
Сообщений: 1
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Помогите отладить программу АЦП на AVR
Всем доброго дня суток!
Помогите начинающему!Пытаюсь сделать АЦП путем использования компаратора и измерении времени заряда конденсатора до значения входного напряжения.(Пример в AVR400). Моделирую пока в VMLABe.Работать не хочет.
С железом еше не связывался.
Заранее большое спасибо.
Вот программа.
Код:
Код:
|
.include "C:VMLABinclude1200def.inc"
;***** Константы
.equ preset=192 ;Предустановленный код смещения T/C0 (256-64)
.def result=r16 ;Результат пеобразования и промежуточные данные
.def temp=r17 ;Временный регистр
.cseg
.org 0x0000
rjmp Reset
.org OVF0addr
rjmp ANA_COMP
.org ACIaddr
rjmp ANA_COMP
;************************************************* *************************
;;* Начало программы
;************************************************* *************************
Reset:
cbi DDRB,1
rcall convert_init ;Инициализация АЦП
sei ; Глобальное разрешение прерываний
ldi result,0xFF
out DDRD,result
Delay:
clr result ;Очистка временного счетчика 1
ldi temp,0xf0 ;Очистка временного счетчика 2
loop1:
inc result ;Увеличение на 1 временного счетчика 1
brne loop1 ; и ожидание его переполнения
inc temp ; Увеличение на 1 временного счетчика 2
brne loop1 ; и ожидание его переполнения
rcall AD_convert ; Запуск преобразования
Wait:
brtc Wait ; Ожидание завершения преобразования
out PORTD,result ; Вывод результата на порт B
rjmp Delay ; Повтор преобразования
ANA_COMP:
in result,TCNT0 ;Загрузка значения таймера 0
clr temp ;Останов таймера 0
out TCCR0,temp
subi result,preset+1 ;Вычисление результата преобразования
cbi PORTB,PB2 ;Запуск разрядки конденсатора
set ;Установка флага завершения преобразования
reti ;Выход из прерывания
convert_init:
ldi result,0x0b ;Разрешение работы компаратора
out ACSR,result ; и разрешение его прерывания
ldi result,0x02 ;Разрешение прерывания таймера
out TIMSK,result
sbi PORTB,PB2 ;Настройка линии заряда/разряда как выход
ret
AD_convert:
ldi result,preset ;Очистка счетчика результата
out TCNT0,result ;и загрузка кода смещения
clt ;Сброс флага окончания преобразования (t)
ldi result,0x02 ;Запуск таймера 0 с предделением на 8
out TCCR0,result
sbi PORTB,PB2 ;Включение режима заряда конденсатора
ret ;Выход из процедуры |
И проект VMLab
Код:
Код:
|
.MICRO "AT90S1200"
.PROGRAM "AVR400.asm"
.TARGET "AVR400.hex"
.TRACE ; Activate micro trace
.POWER VDD=5 VSS=0 ; Power nodes
.CLOCK 1meg ; Micro clock
.STORE 250m ; Trace (micro+signals) storage time
R1 PB2 PB0 100k
C1 PB0 VSS 10n
V1 PB1 VSS SLIDER_1(0 2)
D1 VDD PD0
D2 VDD PD1
D3 VDD PD2
D4 VDD PD3
D5 VDD PD4
D6 VDD PD5
D7 VDD PD6 |
-- Прилагается рисунок: --
|
|
|
|
18.11.2009, 13:09
|
|
Прохожий
Регистрация: 17.11.2009
Сообщений: 1
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Помогите отладить программу АЦП на AVR
А зачем связываться с барахлом типа 1200, если есть куча нормальных
AtMega со встроенным АЦП и аналоговым коммутатором.
Нормальные люди - из Новгорода в Астрахань через Сахалин не ездят.
С уВажением начинающему.
Авилов.(разработчик(52года)).Стаж- вся жизнь.
|
|
|
|
18.11.2009, 16:01
|
|
Вид на жительство
Регистрация: 19.05.2005
Сообщений: 478
Сказал спасибо: 0
Сказали Спасибо 21 раз(а) в 16 сообщении(ях)
|
Re: Помогите отладить программу АЦП на AVR
Сообщение от And_av
|
А зачем связываться с барахлом типа 1200, если есть куча нормальных
AtMega со встроенным АЦП и аналоговым коммутатором.
Нормальные люди - из Новгорода в Астрахань через Сахалин не ездят.
С уВажением начинающему.
Авилов.(разработчик(52года)).Стаж- вся жизнь.
|
ясное дело
микруха уже не выпускается
берем какую-нибудь мегу(например мегу
в протеусе прекрасно АЦП моделируется
из 8 делается рожа
Последний раз редактировалось frend; 18.11.2009 в 16:04.
|
|
|
|
23.11.2009, 15:48
|
|
Частый гость
Регистрация: 15.11.2009
Сообщений: 28
Сказал спасибо: 9
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Помогите отладить программу АЦП на AVR
Сообщение от frend
|
в протеусе прекрасно АЦП моделируется
из 8 делается рожа
|
, насчет прекрасно моделируется, а можно поподробнее, а то уже третий день бьюсь, ацп странно работает, все время как результат преобразования одно и то же значение, хотя сигнал на входе меняется
|
|
|
|
23.11.2009, 21:49
|
|
Прохожий
Регистрация: 21.10.2009
Сообщений: 7
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
|
Re: Помогите отладить программу АЦП на AVR
Сообщение от frend
|
из 8 делается рожа
|
а вот так не делается 8 )
|
|
|
|
23.11.2009, 21:54
|
|
Прохожий
Регистрация: 21.10.2009
Сообщений: 7
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
|
Re: Помогите отладить программу АЦП на AVR
Attiny 2313 в таком же корпусе, что и 90s1200 если что, и АЦП есть и по цене выгодней чем AtMega.
|
|
|
|
23.11.2009, 22:31
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: Помогите отладить программу АЦП на AVR
Сообщение от Nimod
|
Attiny 2313 в таком же корпусе, что и 90s1200 если что, и АЦП есть
|
Откуда АЦП?
|
|
|
|
24.11.2009, 00:03
|
|
Прохожий
Регистрация: 21.10.2009
Сообщений: 7
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
|
Re: Помогите отладить программу АЦП на AVR
Пардон, да действительно нету ,это я спутал с 13-ым(кстати он вообще копейки стоит - 1$, но он DIP8 ). Ну тогда AtTiny26 - тоже 20 выводов и десять входов мультиплексного АЦП.
Последний раз редактировалось Nimod; 24.11.2009 в 00:50.
|
|
|
|
30.11.2009, 14:07
|
|
Прохожий
Регистрация: 24.11.2009
Сообщений: 5
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
|
Re: Помогите отладить программу АЦП на AVR
Сообщение от operator
|
, насчет прекрасно моделируется, а можно поподробнее, а то уже третий день бьюсь, ацп странно работает, все время как результат преобразования одно и то же значение, хотя сигнал на входе меняется
|
У меня была такая проблема с ATmega64 ). АЦП всегда выдавал одно и тоже. Оказалось установить порт ацп на вход вручную. Например для atmega64 - DDRF = 0x00; И все пришло в норму. )
|
|
|
Сказали "Спасибо" hellhound1988
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 15:54.
|
|