Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 21.02.2010, 21:17  
spballiance
Вид на жительство
 
Регистрация: 13.02.2010
Сообщений: 372
Сказал спасибо: 12
Сказали Спасибо 15 раз(а) в 12 сообщении(ях)
spballiance на пути к лучшему
По умолчанию Re: Регулировка частоты на контроллере

подрезал код под свои нужды
Реклама:

Последний раз редактировалось spballiance; 22.02.2010 в 14:23.
spballiance вне форума  
Непрочитано 22.02.2010, 13:06  
spballiance
Вид на жительство
 
Регистрация: 13.02.2010
Сообщений: 372
Сказал спасибо: 12
Сказали Спасибо 15 раз(а) в 12 сообщении(ях)
spballiance на пути к лучшему
По умолчанию Re: Регулировка частоты на контроллере

отсимулировал таблицу на 0х13. результат на картинке. замена таблицы на org 0x100 - вообще перестает читать из памяти, хотя Z в отладчике меняется верно(при org 0x100)


Код:
;*************************************************  *****************************
; start of code
;*************************************************  *****************************

#include ‹tn2313def.inc›

	.org 0x00
		rjmp	RESET

	.org 0x07
		rjmp	RX_COMPLETE_INT

;*************************************************  *****************************
; data tables
;*************************************************  *****************************
	.org 0x100
 
sine:		; 256 step sinewave table
	.db	0x80,0x83,0x86,0x89,0x8c,0x8f,0x92,0x95,0x98,0x9c,  0x9f,0xa2,0xa5,0xa8,0xab,0xae
	.db	0xb0,0xb3,0xb6,0xb9,0xbc,0xbf,0xc1,0xc4,0xc7,0xc9,  0xcc,0xce,0xd1,0xd3,0xd5,0xd8
	.db	0xda,0xdc,0xde,0xe0,0xe2,0xe4,0xe6,0xe8,0xea,0xec,  0xed,0xef,0xf0,0xf2,0xf3,0xf5
	.db	0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfc,0xfd,0xfe,  0xfe,0xff,0xff,0xff,0xff,0xff
	.db	0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfe,0xfd,0xfc,  0xfc,0xfb,0xfa,0xf9,0xf8,0xf7
	.db	0xf6,0xf5,0xf3,0xf2,0xf0,0xef,0xed,0xec,0xea,0xe8,  0xe6,0xe4,0xe2,0xe0,0xde,0xdc
	.db	0xda,0xd8,0xd5,0xd3,0xd1,0xce,0xcc,0xc9,0xc7,0xc4,  0xc1,0xbf,0xbc,0xb9,0xb6,0xb3
	.db	0xb0,0xae,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x98,0x95,  0x92,0x8f,0x8c,0x89,0x86,0x83
	.db	0x80,0x7c,0x79,0x76,0x73,0x70,0x6d,0x6a,0x67,0x63,  0x60,0x5d,0x5a,0x57,0x54,0x51
	.db	0x4f,0x4c,0x49,0x46,0x43,0x40,0x3e,0x3b,0x38,0x36,  0x33,0x31,0x2e,0x2c,0x2a,0x27
	.db	0x25,0x23,0x21,0x1f,0x1d,0x1b,0x19,0x17,0x15,0x13,  0x12,0x10,0x0f,0x0d,0x0c,0x0a
	.db	0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x03,0x02,0x01,  0x01,0x00,0x00,0x00,0x00,0x00
	.db	0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x02,0x03,  0x03,0x04,0x05,0x06,0x07,0x08
	.db	0x09,0x0a,0x0c,0x0d,0x0f,0x10,0x12,0x13,0x15,0x17,  0x19,0x1b,0x1d,0x1f,0x21,0x23
	.db	0x25,0x27,0x2a,0x2c,0x2e,0x31,0x33,0x36,0x38,0x3b,  0x3e,0x40,0x43,0x46,0x49,0x4c
	.db	0x4f,0x51,0x54,0x57,0x5a,0x5d,0x60,0x63,0x67,0x6a,  0x6d,0x70,0x73,0x76,0x79,0x7c

RESET:
		ldi		r16, RAMEND
		out		SPL, r16		; setup stack pointer

		; Set baud rate
		ldi 	r16,25
		ldi 	r17,0
		out 	UBRRH, r17
		out		UBRRL, r16
		; Enable receiver and transmiter
		ldi 	r16,(1‹‹RXCIE)|(1‹‹RXEN)|(1‹‹TXEN)
		out 	UCSRB,r16
		; Set frame format: 8data, 2stop
		ldi 	r16, (1‹‹USBS)|(3‹‹UCSZ0)
		out 	UCSRC,r16

		sei						; global enable interrupts

		ser		r16				; 
		out		DDRB,r16		; set all PORTB bits as output
	
		; set sinewave output
		
		ldi		r31,high(sine)	; setup Z pointer hi
		ldi		r30,low(sine)	; setup Z pointer lo

		; clear accumulator 

		ldi 	r29,0x00		; clear accumulator 
		ldi 	r28,0x00		; clear accumulator 

		; setup adder registers		
		
		ldi 	r24,0x7A		; setup adder value
		ldi 	r25,0x14		; to 10 kHz
		ldi 	r26,0x02		;

		ldi r17,'0'			;ôëàã - íå çàïóùåí, "1" - çàïóùåí

; main loop

wait:		
		cpi		r17,'0'				; up one
		breq	wait	

LOOP1:
		add		r28,r24			;1
		adc		r29,r25			;1
		adc		r30,r26			;1
		lpm						;3
		out		PORTB,r0		;1
		in 		r18,sreg		;1
		cpi		r17,'0'			;1
		breq	wait			;1
		out 	sreg,r18		;1
		rjmp	LOOP1			;2 =› 13 cycles


;*************************************************  *********************
; communication functionality
;*************************************************  *********************
поскипано

Последний раз редактировалось spballiance; 22.02.2010 в 14:36.
spballiance вне форума  
Непрочитано 22.02.2010, 14:59  
Kabron
Почётный гражданин KAZUS.RU
 
Аватар для Kabron
 
Регистрация: 12.11.2004
Адрес: Москва
Сообщений: 8,564
Сказал спасибо: 701
Сказали Спасибо 4,334 раз(а) в 1,985 сообщении(ях)
Kabron на пути к лучшему
По умолчанию Re: Регулировка частоты на контроллере

Вам ведь, кажется прямоугольник требовался. Я код выложил. Никаких таблиц не надо. Аккумулятор фазы 32бит.
Kabron вне форума  
Непрочитано 22.02.2010, 15:23  
Kabron
Почётный гражданин KAZUS.RU
 
Аватар для Kabron
 
Регистрация: 12.11.2004
Адрес: Москва
Сообщений: 8,564
Сказал спасибо: 701
Сказали Спасибо 4,334 раз(а) в 1,985 сообщении(ях)
Kabron на пути к лучшему
По умолчанию Re: Регулировка частоты на контроллере

А вот так красиво все работает
Миниатюры:
Нажмите на изображение для увеличения
Название: 2010-02-22_141547.jpg
Просмотров: 49
Размер:	80.8 Кб
ID:	4865  
Вложения:
Тип файла: zip MyDDS48_32.zip (35.9 Кб, 60 просмотров)
Kabron вне форума  
Непрочитано 22.02.2010, 15:26  
spballiance
Вид на жительство
 
Регистрация: 13.02.2010
Сообщений: 372
Сказал спасибо: 12
Сказали Спасибо 15 раз(а) в 12 сообщении(ях)
spballiance на пути к лучшему
По умолчанию Re: Регулировка частоты на контроллере

Сообщение от Kabron Посмотреть сообщение
А вот так красиво все работает
спасибо большое. но коллективный разум пришел к выводу - раз в конце требуется синус - делаем синус на контроллере, а не на рассыпухе

кстати, как виртуальный терминал прикрутили? он у меня не хочет работать, хотя контроллеры отлично общаются между собой
spballiance вне форума  
Непрочитано 22.02.2010, 15:33  
Kabron
Почётный гражданин KAZUS.RU
 
Аватар для Kabron
 
Регистрация: 12.11.2004
Адрес: Москва
Сообщений: 8,564
Сказал спасибо: 701
Сказали Спасибо 4,334 раз(а) в 1,985 сообщении(ях)
Kabron на пути к лучшему
По умолчанию Re: Регулировка частоты на контроллере

Смотри код.
Kabron вне форума  
Непрочитано 22.02.2010, 15:40  
spballiance
Вид на жительство
 
Регистрация: 13.02.2010
Сообщений: 372
Сказал спасибо: 12
Сказали Спасибо 15 раз(а) в 12 сообщении(ях)
spballiance на пути к лучшему
По умолчанию Re: Регулировка частоты на контроллере

я в одном из вариантов аналогично вываливал в терминал текущее значение частоты и ждал ввода новой, но терминал молчал как партизан

насколько я понял, у вас реализована идея двоичного счетчика-делителя

код под какой компилятор написан?
spballiance вне форума  
Непрочитано 22.02.2010, 16:21  
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: Регулировка частоты на контроллере

Сообщение от spballiance Посмотреть сообщение
отсимулировал таблицу на 0х13. результат на картинке. замена таблицы на org 0x100 - вообще перестает читать из памяти, хотя Z в отладчике меняется верно(при org 0x100)
Почитайте в хелпе про команду LPM.
И узнаете, как правильно переписать вот это:
Код:
; set sinewave output
		
		ldi		r31,high(sine)	; setup Z pointer hi
		ldi		r30,low(sine)	; setup Z pointer lo
kison вне форума  
Непрочитано 22.02.2010, 16:29  
spballiance
Вид на жительство
 
Регистрация: 13.02.2010
Сообщений: 372
Сказал спасибо: 12
Сказали Спасибо 15 раз(а) в 12 сообщении(ях)
spballiance на пути к лучшему
По умолчанию Re: Регулировка частоты на контроллере

Сообщение от kison Посмотреть сообщение
Почитайте в хелпе про команду LPM.
И узнаете, как правильно переписать вот это:
в дебагере Z загружается верно 0х100
spballiance вне форума  
Непрочитано 22.02.2010, 16:46  
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: Регулировка частоты на контроллере

Сообщение от spballiance Посмотреть сообщение
в дебагере Z загружается верно 0х100
Это как раз и неверно. Загрузите туда 0x200, раз уж хелп читать лень.
kison вне форума  
Сказали "Спасибо" kison
spballiance (22.02.2010)
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменение частоты на ATmega8 lextorg Микроконтроллеры, АЦП, память и т.д 22 14.01.2010 14:48
Контроль частоты вращения Faxa Электроника - это просто 6 06.01.2010 23:43
Делитель частоты Gladkih TTL и CMOS логика 7 07.12.2009 18:31
Генератор частоты на Mega - как? code-by Микроконтроллеры, АЦП, память и т.д 9 10.11.2009 15:02


Часовой пояс GMT +4, время: 08:28.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot