|
Автоподстройка на скважности., На контроллере Тини-15. |
|
|
|
Oct 18 2007, 13:14
|
Частый гость
 
Группа: Участник
Сообщений: 148
Регистрация: 27-04-06
Пользователь №: 16 558

|
Ребята, подскажите? Делаю автоподстройку нуля. А опыта мало совсем. Сигнал автоподстройки берётся с фильтра на ОУ, а на сам фильтр идёт прямоугольный сигнал с переменной скважностью, частотой 120-200 гц. Скважность меняется во времени уменьшаясь или увеличиваясь, в зависимости от состояния компаратора, который подключен к выходу усилителя на ОУ ( Ку-30), а на вход подается сигнал автоподстройки с фильтра, подмешанный к некоторому входному сигналу. Когда на выходе "0", сигнал близок к меандру. И т.д... Как бы покрасивее всё это оформить програмно? Контроллер Тини-15, ИАР отказался с ним на СИ работать, придётся наверное Асм поднимать. Поделитесь пожалуйста кто что думает? Спасибо.
|
|
|
|
|
 |
Ответов
|
Oct 22 2007, 13:08
|
Местный
  
Группа: Участник
Сообщений: 246
Регистрация: 4-12-06
Пользователь №: 23 101

|
Цитата(Коляй @ Oct 21 2007, 09:05)  Чего боялся на то и напоролся. Оказывается мало 8 бит для ШИМа. Там сделано частота 120 гц и дискретность ШИМа 2 мкс. Это получается нужен 12-и разрядный ШИМ. Если программно сделать, то проц будет только ШИМ-ом одним заниматься и больше ни чем. Что же, Мегу опять придётся применять? (ещё делал это дело на 572ПА1, ЦАП 10-разрядный + реверс.счетчики, вобще плохо получилось, мало дискретности было, сигнал на выходе дрыгался прилично). Ну, Мегу - не мегу, есть и тиньки с 16-разрядными таймерами. Правда, корпус минимум 14-ногий. Можно попробовать сделать программно, разделив 12 бит на старшие 4 бита и младшие, в таймере. В прерывании по сравнению таймера сравнивать старшие биты, в прерывании переполнения таймера наращивать счётчик старших бит. Частота ШИМа получится в 16 раз меньше частоты переполнения таймера. Если для этого ресурсов не хватит, то конечно - брать контроллер с 16-разрядным таймером.
|
|
|
|
|
Oct 30 2007, 19:11
|
Частый гость
 
Группа: Участник
Сообщений: 148
Регистрация: 27-04-06
Пользователь №: 16 558

|
Ребята, посмотрите вы пожалуйста код? Проклятый Протеус не желает ни в какую показывать сигнал, один импульс дрыгнет и всё. И прямая линия дальше. В АВР-Студии всё отлично работает, правда в 3,22 (четвёртая слетает с любого файла). Я уже делал и на разных таймерах, всё одно... Мне то дальше надо писАть, а тут в самом начале уже косяки начались. Посмотрите вы чего я накосячил? Да, в VMLAB-е работает всё, но не с первого раза. VMLAB ругается сначала 2 раза, что то про SREG (Bit1). Цитата .include "tn15def.inc" ; Variable Declarations .def temp = r16 .def skwlow = r20 .def skwhigh = r21 .def freqhigh = r22 .def takt = r19 .def n = r18 .def stek = r26 .cseg ; CODE segment.
;Interrupt Vectors .org 0 rjmp RESET ;Reset reti ;INT 0 reti ;Pin Change rjmp TIMER1_COMP ;Output compare rjmp TIMER1_OVF ;Timer 1 reti ;rjmp tov0 ;Timer 0 reti ;EEPROM ready reti ;Analog Comparator reti ;ADC Complete
;Initialization RESET: ldi temp, 0 ; out OSCCAL,temp ldi temp, 0x07 ; port na out out DDRB, temp ; ldi temp, 0x44 ; prer po COMP & OVF out TIMSK, temp ; ldi temp, 0x80 ; test out 0x2E, r16 ; ldi temp, 0x05 ; clock/1 out TCCR1, temp ; clr skwlow ; clr freqhigh ; ldi skwhigh, 0x04 ;test sei ; ; ldi r16,$8E ; Enable, ADIE, Prescale = 1/64 ; out ADCSR,r16 ; ldi r16,0 ; Select ADC0 as input, VCC as VREF ; out ADMUX,r16
LOOP: nop nop rjmp LOOP ; TIMER1_OVF:
in stek, SREG ; cpi freqhigh, 0x10 ; brne dal1; clr freqhigh ; sbi PORTB, 2 ; dal1: inc freqhigh; out SREG, stek ; reti ; TIMER1_COMP: in stek, SREG ; cbi PORTB, 2 ; out SREG, stek ; reti ;
|
|
|
|
Сообщений в этой теме
Коляй Автоподстройка на скважности. Oct 18 2007, 13:14 Dog Pawlowa Цитата(Коляй @ Oct 18 2007, 16:14) Подели... Oct 18 2007, 16:43 Коляй Цитата(Dog Pawlowa @ Oct 18 2007, 20:43) ... Oct 18 2007, 18:46  Dog Pawlowa Цитата(Коляй @ Oct 18 2007, 21:46) ...
И... Oct 19 2007, 07:20 sseett > Контроллер Тини-15, ИАР отказался с ним на СИ... Oct 19 2007, 07:28 WHALE мона и на тини13,она дешевше. Oct 19 2007, 07:50 add Цитата(Коляй @ Oct 18 2007, 17:14) Ребята... Oct 19 2007, 08:13 Коляй Спасибо. Немного не так спросил. Необходимо наобор... Oct 19 2007, 09:44  Maik-vs Цитата(Коляй @ Oct 19 2007, 13:44) Спасиб... Oct 19 2007, 10:00   Коляй Цитата(Maik-vs @ Oct 19 2007, 14:00)... Oct 19 2007, 13:25    Коляй Таймерами пользовался, в ШИМ не хотелось лезть. А ... Oct 20 2007, 07:10   Maik-vs Цитата(Коляй @ Oct 30 2007, 23:11) Ребята... Oct 31 2007, 08:35    Коляй Цитата(Maik-vs @ Oct 31 2007, 11:35)... Oct 31 2007, 10:22     Коляй Всё, хватит! Кончилось терпение! Поеду 13-... Nov 3 2007, 20:26      Коляй Цитата(Коляй @ Nov 3 2007, 23:26) Хотелос... Nov 5 2007, 10:44       mdmitry Цитата(Коляй @ Nov 5 2007, 13:44) Вопрос ... Nov 5 2007, 12:07 mdmitry Может радикально пересмотреть ситуацию и выбрать д... Oct 21 2007, 12:31 Коляй Цитата(mdmitry @ Oct 21 2007, 16:31) Може... Oct 21 2007, 18:52  =GM= Цитата(Коляй @ Oct 21 2007, 18:52) В нали... Oct 21 2007, 19:49 Коляй Ребята, посмотрите пожалуйста код? Не работает как... Nov 16 2007, 18:38 Коляй Или наоборот дальше от нуля отходить...
(чего то п... Nov 16 2007, 22:04  IGK Коляй, это ваш сайт kolyay.narod.ru ?
Если интере... Nov 18 2007, 13:47   Коляй Ну "сайт" это конечно громко сказано, ск... Nov 18 2007, 17:18    IGK Цитата(Коляй @ Nov 18 2007, 19:18) Пробле... Nov 19 2007, 06:09     Коляй Так и не удалось добиться нормальной работы програ... Dec 2 2007, 14:08 Коляй Упс, ошибочка. Не R*15, a R*(2^15) Dec 4 2007, 14:45
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|