Відповісти

Введіть повідомлення і натисніть Надіслати
Параметри

Назад

Огляд теми (нові повідомленні вгорі)

Вячеслав Азаров
2019-07-23 07:47:38
renoshnik пише:

Отличная штучка, работает замечательно.

Понятно. smile Спасибо. Обязательно попробую применить если подвернётся соответствующая задача, требуюшая несложного DSP.

renoshnik
2019-07-23 06:59:40
Вячеслав Азаров пише:

Вспомнил, и захотелось поинтересоваться. Вам, что нибудь полезное удалось сделать на LGT8Fxxx?

Отличная штучка, работает замечательно.

Вячеслав Азаров
2019-07-22 20:18:19

Вспомнил, и захотелось поинтересоваться. Вам, что нибудь полезное удалось сделать на LGT8Fxxx?

renoshnik
2018-11-21 18:28:29

Вот я решил посмотреть как работает ЦАП.
Вот такая программка получилась :

#define PI 3.1415926535897932384626433832795 
 
void setup() {
PMCR |= (1<<7);  PMCR |= (1<<2); __asm__("nop\n\t");
PMCR |= (1<<7); PMCR |= (1<<5); __asm__("nop\n\t""nop\n\t");
PMCR |= (1<<7); PMCR &=~ (1<<0); PMCR |= (1<<7); PMCR &=~ (1<<1);
CLKPR |= (1<<7);  CLKPR &=~ (1<<0); 
  pinMode(4, ANALOG);
  analogReference(INTERNAL4V096);
	}
 
void loop() {
	// частота выборки - 0,01.
	for(float i=0;i<=2;i=i+0.01) {   		
	float rad = PI*i; float Sin = sin(rad); 
	long intSin = Sin*300;    			
		byte val=map(intSin,-300,300,0,255);
			analogWrite(4, val);  }
	}

провел три теста с разными значениями частоты выборки

1 — частота выборки — 0,01 = 37 Гц
YkAAAgOptOA-960.jpg

2 — частота выборки — 0,05 = 185 Гц
AEAAAgOptOA-960.jpg

3 — частота выборки — 0,1 = 385 Гц
MkAAAgOptOA-960.jpg

renoshnik
2018-11-20 16:05:53

Все правильно.

Вячеслав Азаров
2018-11-20 16:02:26

И еще, это не всегда возможно. В одних случаях можно обойтись, просто, заменой константы переменной или небольшим изменением вычислений. В других требуемые значения не приводятся к целочисленным дробям, не удовлетворяя точности. В третьих, иногда не хватает памяти, на продвинутые алгоритмы. Для маленьких микроконтроллеров, как правило, приходится оптимизировать всё.

renoshnik
2018-11-20 15:50:32
Вячеслав Азаров пише:
renoshnik пише:

Частота это пол дела... А как быть с делителем ? hmm hmm

Если строго, то при статической реализации вы не должны менять настройку системы синхронизации в процессе работы программы. Так сделано в ядре Ардуино. Если же вы хотите менять частоту синхронизации во время исполнения то нужно удовлетворить всем зависимостям, во всех применяемых модулях, от этой частоты (Рис4.1. Распределение тактовой системы LGT8FX8D). Попросту, переделать все алгоритмы всех устройств, применяемых в программе, работа которых зависит от частоты синхронизации. Кроме того при смене частоты необходимо переинициализировать все зависимые активные устройства.

Так вот и я об этом ...
В таком случае проекты должны выполняться без "костылей" ...

Вячеслав Азаров
2018-11-20 15:23:39
renoshnik пише:

Частота это пол дела... А как быть с делителем ? hmm hmm

Если строго, то при статической реализации вы не должны менять настройку системы синхронизации в процессе работы программы. Так сделано в ядре Ардуино. Если же вы хотите менять частоту синхронизации во время исполнения то нужно удовлетворить всем зависимостям, во всех применяемых модулях, от этой частоты (Рис4.1. Распределение тактовой системы LGT8FX8D). Попросту, переделать все алгоритмы всех устройств, применяемых в программе, работа которых зависит от частоты синхронизации. Кроме того при смене частоты необходимо переинициализировать все зависимые активные устройства.

renoshnik
2018-11-20 14:33:15
Вячеслав Азаров пише:

Да. это константа xxx.build.f_cpu .  Я незнаю как там эта доска называется, у меня WeMos не установлен. Не помешает так же проверить и файл platform.txt, на предмет зависимостей кода от констант в директивах компиляции.

Частота это пол дела...
А как быть с делителем ? hmm hmm

Вячеслав Азаров
2018-11-20 14:31:19
renoshnik пише:

в папке бутлоадеров есть файл optiboot_lgt8f328d_extosc.hex
думаю, может его залить, а потом в "доске" подкорректировать...

Наверно да, только лучше создать еще одну версию платки если такой там нет.

Вячеслав Азаров
2018-11-20 14:24:20

Да. это константа xxx.build.f_cpu .  Я незнаю как там эта доска называется, у меня WeMos не установлен. Не помешает так же проверить и файл platform.txt, на предмет зависимостей кода от констант в директивах компиляции.

renoshnik
2018-11-20 14:13:48
Вячеслав Азаров пише:

Все правильно. Расчет частоты синхронизации UARTа производится не от фактической базовой частоты синхронизации а от числа определенного константой. Можно подправить определения констант для компиляции, в файле описания платы и странности исчезнут. Правильнее, создать описание для ещё одной версии платки WeMos, с требуемым кварцем и режимом синхронизации. Или переделать ядро под динамическое изменение режимов синхронизации системы.

это вы про boards.txt ?

в папке бутлоадеров есть файл optiboot_lgt8f328d_extosc.hex
думаю, может его залить, а потом в "доске" подкорректировать...

2018_11_20_131908.jpg

http://piccy.info/view3/12782457/ba1fee … 1f40/orig/

Вячеслав Азаров
2018-11-20 14:00:53

Все правильно. Расчет частоты синхронизации UARTа производится не от фактической базовой частоты синхронизации а от числа определенного константой. Можно подправить определения констант для компиляции, в файле описания платы и странности исчезнут. Правильнее, создать описание для ещё одной версии платки WeMos, с требуемым кварцем и режимом синхронизации. Или переделать ядро под динамическое изменение режимов синхронизации системы.

renoshnik
2018-11-20 11:47:29

Продолжаю "мучать" WEMOS XI   LGT8F328D

Не буду описывать танцы с бубном из-за неточностей в даташите, покажу результат подключения кварца и перевода делителя в единицу.

Вот мои подопытные...

IMG_1126.jpg

Результаты думаю, понятны без комментариев.

2018_11_20_101515.jpg

2018_11_20_101956.jpg

renoshnik
2018-11-08 21:00:45

Решил провести маленький тест для двух плат :
https://a.d-cd.net/qMAAAgJPlOA-960.jpg

Результаты понятны из картинок …

ПЕРВЫЙ ТЕСТ :

https://a.d-cd.net/SsAAAgJPlOA-960.jpg
https://a.d-cd.net/5MAAAgJPlOA-960.jpg



ВТОРОЙ ТЕСТ :

https://a.d-cd.net/mMAAAgJPlOA-960.jpg
https://a.d-cd.net/asAAAgJPlOA-960.jpg


мой вывод — НЕ используйте "виринг" для LGT8F328*  hmm

Підвал форуму