[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Модератор форума: RD3AVJ 
Форум » форумы » Общие вопросы по Bascom-AVR » Помогите советом с программой
Помогите советом с программой
KoSS_89Дата: Воскресенье, 04.09.2016, 19:34 | Сообщение # 1
Группа: Проверенные
Сообщений: 53

Статус: Offline
Здравствуйте, есть задача создавать сигнал синусоидальной формы с "плавающей" частотой в пределах от24.5 до 25.5 кГц. Для простоты решил использовать кусок готовой программы, но столкнулся с ошибкой при компиляции. Подскажите как правельно распределить память в МК. Может есть более простой способ решить задачу с генерацией плавающей частоты синуса?
Пока изменение частоты не писал...


Код
$regfile = "attiny2313.DAT"
$crystal = 11059200
$hwstack = 60                    'Оперативка для GoTo & GoSub
$swstack = 60                    'Оперативка для GoTo & GoSub
$framesize = 16                    'Область памяти для операторов PRINT
'
'
Config Portb = Output                    'Тут R/2R ЦАП

Enable Interrupts
'
' Frequency = r24/r25/r26* (xtal freq/cycles in loop)/16777216  (2^24)
' Fincr = frequenza voluta / multiplier
'
Const Cycles = 8                    'DDS cycles loop
Const Multiplier =(_xtal / Cycles) / 2 ^ 24
Const F_ref = 0.5                    'Поправка
'
'
Dim Wave(256) As Byte At &H100
Dim Tmpw As Word
'
Dim Fincr As Long                    'для расчёта частоты
Dim Tmpl As Long
'
Dim Singl As Single                    'расчитанная частота

'                  Конвертируем и генерируем заданную чаcтоту
Fincr = 25000
'
Singl = Fincr / Multiplier
Fincr = Singl + F_ref
'
'
      Restore Sine_table
      rjmp Run_gen
'
Run_gen:
      Do
         Read Wave(tmpw)                    'trasferisce in ram function table
         Incr Tmpw
      Loop Until Tmpw > 256
      Loadadr Wave(1) , Z                    'ldi  r31,$01    ldi  r30,$00
'
      ldi r29,$00                    'clear accumulator
      ldi r28,$00
      lds r24,{Fincr+0}                    'LSB passa incremento frequenza
      lds r25,{Fincr+1}                    'usa 24 dei 32 bit
      lds r26,{Fincr+2}                    'MSB
Gen:
      add r28, r24                    ' 1 cycle
      adc r29, r25                    ' 1 cycle
      adc r30, r26                    ' 1 cycle
      ld  r0, Z                    ' 2 cycle
!     Out Portb,R0                    ' 1 cycle
'      sbic Pinc,4                    ' 1         check tasto Run/stop
      rjmp Gen                    ' 2 cycles  totale 9 cicli
'      Portd = 127                    ' lascia uscita ad 1/2 scala

End
'_______________________________________________________________________________
'
'
Sine_table:
'
   Data &H80 , &H83 , &H86 , &H89 , &H8C , &H8F , &H92 , &H95
   Data &H98 , &H9C , &H9F , &HA2 , &HA5 , &HA8 , &HAB , &HAE
   Data &HB0 , &HB3 , &HB6 , &HB9 , &HBC , &HBF , &HC1 , &HC4
   Data &HC7 , &HC9 , &HCC , &HCE , &HD1 , &HD3 , &HD5 , &HD8
   Data &HDA , &HDC , &HDE , &HE0 , &HE2 , &HE4 , &HE6 , &HE8
   Data &HEA , &HEC , &HED , &HEF , &HF0 , &HF2 , &HF3 , &HF5
   Data &HF6 , &HF7 , &HF8 , &HF9 , &HFA , &HFB , &HFC , &HFC
   Data &HFD , &HFE , &HFE , &HFF , &HFF , &HFF , &HFF , &HFF
   Data &HFF , &HFF , &HFF , &HFF , &HFF , &HFF , &HFE , &HFE
   Data &HFD , &HFC , &HFC , &HFB , &HFA , &HF9 , &HF8 , &HF7
   Data &HF6 , &HF5 , &HF3 , &HF2 , &HF0 , &HEF , &HED , &HEC
   Data &HEA , &HE8 , &HE6 , &HE4 , &HE2 , &HE0 , &HDE , &HDC
   Data &HDA , &HD8 , &HD5 , &HD3 , &HD1 , &HCE , &HCC , &HC9
   Data &HC7 , &HC4 , &HC1 , &HBF , &HBC , &HB9 , &HB6 , &HB3
   Data &HB0 , &HAE , &HAB , &HA8 , &HA5 , &HA2 , &H9F , &H9C
   Data &H98 , &H95 , &H92 , &H8F , &H8C , &H89 , &H86 , &H83
   Data &H80 , &H7C , &H79 , &H76 , &H73 , &H70 , &H6D , &H6A
   Data &H67 , &H63 , &H60 , &H5D , &H5A , &H57 , &H54 , &H51
   Data &H4F , &H4C , &H49 , &H46 , &H43 , &H40 , &H3E , &H3B
   Data &H38 , &H36 , &H33 , &H31 , &H2E , &H2C , &H2A , &H27
   Data &H25 , &H23 , &H21 , &H1F , &H1D , &H1B , &H19 , &H17
   Data &H15 , &H13 , &H12 , &H10 , &H0F , &H0D , &H0C , &H0A
   Data &H09 , &H08 , &H07 , &H06 , &H05 , &H04 , &H03 , &H03
   Data &H02 , &H01 , &H01 , &H00 , &H00 , &H00 , &H00 , &H00
   Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H01 , &H01
   Data &H02 , &H03 , &H03 , &H04 , &H05 , &H06 , &H07 , &H08
   Data &H09 , &H0A , &H0C , &H0D , &H0F , &H10 , &H12 , &H13
   Data &H15 , &H17 , &H19 , &H1B , &H1D , &H1F , &H21 , &H23
   Data &H25 , &H27 , &H2A , &H2C , &H2E , &H31 , &H33 , &H36
   Data &H38 , &H3B , &H3E , &H40 , &H43 , &H46 , &H49 , &H4C
   Data &H4F , &H51 , &H54 , &H57 , &H5A , &H5D , &H60 , &H63
   Data &H67 , &H6A , &H6D , &H70 , &H73 , &H76 , &H79 , &H7C
Прикрепления: 8554016.jpg(89Kb)


 
ПетрДата: Понедельник, 05.09.2016, 14:26 | Сообщение # 2
Группа: Проверенные
Сообщений: 47

Статус: Offline
Откуда в ATtiny2313 взяться 256 байт если в нем только 128 байт оперативной памяти?

 
Форум » форумы » Общие вопросы по Bascom-AVR » Помогите советом с программой
Страница 1 из 11
Поиск: