Помогите кто чем может (ни как не получается сделать 400 Гц)
Добавлено: Чт окт 29, 2009 15:43:21
Люди добрые помогите ршить задачу. Есть готовая программа из журнала Схемотехника статья про преобразователь напряжения с синусом на выходеи частотой 50 Гц. Мне необходимо получить частоту в 400 Гц. но я ни как не могу этого добиться., с ассемблером вот уже неделю разбираюсь прочитал все про таймеры в AVR ATtiny 2313V. Пришел к выводу что тем способом что использован в программе можно максимум добиться 50 Гц переключений полуволн ибо нет в этой микросхеме синтезатора частоты для увеличения скорости счета таймера 1 который работает в режиме формирования ШИМа. Вот текст программы если нужно будет то выложу и статью с журнала.
Люди помогите разобраться с задачей нужно 220 В и 400 Гц.
;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
Люди помогите разобраться с задачей нужно 220 В и 400 Гц.
;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
