Новичок
Регистрация: 22.10.2009
Сообщений: 1
Репутация: 10
|
Помогите ршить задачу. Есть готовая программа из журнала Схемотехника статья про преобразователь напряжения с синусом на выходеи частотой 50 Гц. Мне необходимо получить частоту в 400 Гц. но я ни как не могу этого добиться., с ассемблером вот уже неделю разбираюсь прочитал все про таймеры в AVR ATtiny 2313V. Вот текст программы если нужно будет то выложу и статью с журнала.
;ATtiny2313 .CSEG .INCLUDE "tn2313def.inc" .org 0 rjmp reset .DEF Step=r30 .DEF Data=r0 .DEF SSREG=r23 .EQU Set_Tabl=16 .EQU Offset=Set_Tabl<<1 .EQU END_Tabl=Offset+196 .org OC1addr rjmp TIM1_COMP .org OVF1addr rjmp TIM1_OVF .CSEG .org 16 SinTab: .DB 5, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52, 56, 60, 64 .DB 67, 71, 75, 79, 83, 86, 90, 94, 98, 101, 105, 109, 112, 116, 119, 123 .DB 126, 130, 133, 136, 140, 143, 146, 150, 153, 156, 159, 162, 165, 168, 171, 174 .DB 177, 180, 183, 185, 188, 191, 193, 196, 198, 201, 203, 206, 208, 210, 212, 214 .DB 217, 219, 221, 223, 224, 226, 228, 230, 231, 233, 234, 236, 237, 239, 240, 241 .DB 242, 243, 244, 245, 246, 247, 248, 249, 249, 250, 250, 251, 251, 252, 252, 252 .DB 252, 252, 253, 252, 252, 252, 252, 252, 251, 251, 250, 250, 249, 249, 248, 247 .DB 246, 245, 244, 243, 242, 241, 240, 239, 237, 236, 234, 233, 231, 230, 228, 226 .DB 224, 223, 221, 219, 217, 214, 212, 210, 208, 206, 203, 201, 198, 196, 193, 191 .DB 188, 185, 183, 180, 177, 174, 171, 168, 165, 162, 159, 156, 153, 150, 146, 143 .DB 140, 136, 133, 130, 126, 123, 119, 116, 112, 109, 105, 101, 98, 94, 90, 86 .DB 83, 79, 75, 71, 67, 64, 60, 56, 52, 48, 44, 40, 36, 32, 28, 24 .DB 20, 16, 12, 8, 5, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 TIM1_COMP: in SSREG, SREG lpm out OCR1AL, Data out SREG, SSREG reti TIM1_OVF: in SSREG, SREG inc Step out SREG, SSREG reti reset: clr r31 ldi Step, Offset ldi r20, 0xdf out SPL, r20 ldi r20, 0xfc out DDRB, r20 ldi r20, 0xf0 out PORTB, r20 ldi r20, 0x3f out PORTD, r20 ldi r20, 0x00 out MCUCR, r20 LDI r20, 0x00 out GIFR, r20 ldi r20, 0x00 out OCR1AH, r20 ldi r20, 16 out OCR1AL, r20 ldi R20, 0xC0 out TIMSK, R20 ldi r20, 0xB1 out TCCR1A, r20 ldi r20, 0x04 out PORTB, r20 WDR ldi r20,0x0D out WDTCR, r20 ldi r20, 0x01 out TCCR1B, r20 cbi PORTD, 6 cbi PORTB, 3 sei m1: cpi Step, END_Tabl breq m2 rjmp m1 m2: cli wdr ldi Step, Offset sbic PORTB, 7 rjmp m3 sbis PORTB, 7 rjmp m4 m3: cbi PORTB, 7 sei rjmp m1 m4: sbi PORTB, 7 sei rjmp m1 |
||
Оценка
|
Знаток
Регистрация: 01.02.2009
Сообщений: 850
Репутация: 149
|
Без привязке к схеме рассматривать программу бесполезно. Да и вообще то чужую программу править трудно, легче и быстрее самому новую написать. Единственное, что я могу подсказать, форма синуса в программе задана таблицей, а частота задается коэфициентом пересчета таймер счетчика. Увеличь в 8 раз его входную частоту при помощи изменения коэфициента деления предварительного счетчика.
__________________
Компьютер не подчиняется законам физики. Только в нем глюки возникают из ничего, файлы исчезают в никуда, а объем измеряется в метрах и называется весом. |
||
Оценка
|
Обратная связь РадиоЛоцман Вверх |