Академия гитарной электроники: Блок Тапа Для Pt2399 - Академия гитарной электроники

Перейти к содержимому

  • 5 Страниц +
  • « Первая
  • 3
  • 4
  • 5
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

Блок Тапа Для Pt2399

#121 Пользователь офлайн   qwer009 

  • Вставить ник
  • Цитировать
  • Раскрыть информацию

Отправлено 19 июня 2021 - 19:53

qwertyfruity, нет, просто поменяйте их местами. вот тут
case 0x00:
// wavevalue = ADCH; //Stocking 8-bit value
ADMUX |= (1 << MUX0); //changing to next ADC Channel - заменить на ADMUX &= ~(1 << MUX0) & ~(1 << MUX1) & ~(1 << MUX2);
break;
то есть получить значение подключив ацп к 6 ноге

и наоборот.

еще раз повторю для меня это не очень хорошо читабельно (не привычно). Вот что я понял тут поочередно опрашиваются каналы АЦП и в последней вы переназначили опрос вместо 6 ноги первую. А вам я так понимаю нужно вместо первой опрашивать 6ю. То есть значение регистра
ADMUX должно быть b00000111

стоп, жаль нельзя исправить. все не верно.

ISR(ADC_vect) //ADC interrupt
{
switch (ADMUX)
{
case 0x00:
// wavevalue = ADCH; //Stocking 8-bit value
ADMUX |= (1 << MUX0); //changing to next ADC Channel - тут 0 биту присваивается значение 1 (после значения 000) получаем 001
break;

case 0x01:
//divtogglevalue = ADCH;
ADMUX &= ~(1 << MUX0);- тут 0 бит сбрасывается
ADMUX |= (1 << MUX1);- тут 1 бит получает значение 1 в итоге получаем 010
break;

case 0x02:
//speedvalue = ADCH;
ADMUX |= (1 << MUX0); - тут 0 бит получает 1 в итоге 011
break;

case 0x03:
//depthvalue = ADCH;
ADMUX |= (1 << MUX2); - тут 2 бит получает 1 в итоге 111
break;

case 0x07:
timevalue = ADCH;
//ADMUX &= ~(1 << MUX0) & ~(1 << MUX1) & ~(1 << MUX2); - тут 0 1 2 биты сбрасываются в 000
ADMUX |= (1 << MUX0); //changing to next ADC Channel - а если так то получаем 111 ( то есть опрос 6й ноги), но когда цикл начнется заново у нас все нарушится ибо нет обнуления.
break;
}
ADCSRA |= (1 << ADSC); //Restarting conversion
}

предлагаю ничего не менять а поменять местами - case 0x07: и case 0x03:

а вот что нужно сделать :)... дошло :)
case 0x03:
depthvalue = ADCH; //тут заменить depthvalue на timevalue --------------------------------------------------
ADMUX |= (1 << MUX2); - тут 2 бит получает 1 в итоге 111
break;

case 0x07:
timevalue = ADCH; а тут наоборот -----------------
//ADMUX &= ~(1 << MUX0) & ~(1 << MUX1) & ~(1 << MUX2); - тут 0 1 2 биты сбрасываются в 000
ADMUX |= (1 << MUX0); //changing to next ADC Channel - а если так то получаем 111 ( то есть опрос 6й ноги), но когда цикл начнется заново у нас все нарушится ибо нет обнуления.
break;
Так було добре там і колись. Там, де без поту і там де без сліз.
Тільки не було в тому мети – Я так не можу, а як зможеш ти?
0

#122 Пользователь офлайн   qwertyfruity 

  • Вставить ник
  • Цитировать
  • Раскрыть информацию

Отправлено 19 июня 2021 - 20:07

Просмотр сообщенияqwer009 (19 июня 2021 - 19:53) писал:

qwertyfruity, нет, просто поменяйте их местами. вот тут
case 0x00:
// wavevalue = ADCH; //Stocking 8-bit value
ADMUX |= (1 << MUX0); //changing to next ADC Channel - заменить на ADMUX &= ~(1 << MUX0) & ~(1 << MUX1) & ~(1 << MUX2);
break;
то есть получить значение подключив ацп к 6 ноге

и наоборот.

еще раз повторю для меня это не очень хорошо читабельно (не привычно). Вот что я понял тут поочередно опрашиваются каналы АЦП и в последней вы переназначили опрос вместо 6 ноги первую. А вам я так понимаю нужно вместо первой опрашивать 6ю. То есть значение регистра
ADMUX должно быть b00000111

стоп, жаль нельзя исправить. все не верно.

ISR(ADC_vect) //ADC interrupt
{
switch (ADMUX)
{
case 0x00:
// wavevalue = ADCH; //Stocking 8-bit value
ADMUX |= (1 << MUX0); //changing to next ADC Channel - тут 0 биту присваивается значение 1 (после значения 000) получаем 001
break;

case 0x01:
//divtogglevalue = ADCH;
ADMUX &= ~(1 << MUX0);- тут 0 бит сбрасывается
ADMUX |= (1 << MUX1);- тут 1 бит получает значение 1 в итоге получаем 010
break;

case 0x02:
//speedvalue = ADCH;
ADMUX |= (1 << MUX0); - тут 0 бит получает 1 в итоге 011
break;

case 0x03:
//depthvalue = ADCH;
ADMUX |= (1 << MUX2); - тут 2 бит получает 1 в итоге 111
break;

case 0x07:
timevalue = ADCH;
//ADMUX &= ~(1 << MUX0) & ~(1 << MUX1) & ~(1 << MUX2); - тут 0 1 2 биты сбрасываются в 000
ADMUX |= (1 << MUX0); //changing to next ADC Channel - а если так то получаем 111 ( то есть опрос 6й ноги), но когда цикл начнется заново у нас все нарушится ибо нет обнуления.
break;
}
ADCSRA |= (1 << ADSC); //Restarting conversion
}

предлагаю ничего не менять а поменять местами - case 0x07: и case 0x03:

а вот что нужно сделать :)... дошло :)
case 0x03:
depthvalue = ADCH; //тут заменить depthvalue на timevalue --------------------------------------------------
ADMUX |= (1 << MUX2); - тут 2 бит получает 1 в итоге 111
break;

case 0x07:
timevalue = ADCH; а тут наоборот -----------------
//ADMUX &= ~(1 << MUX0) & ~(1 << MUX1) & ~(1 << MUX2); - тут 0 1 2 биты сбрасываются в 000
ADMUX |= (1 << MUX0); //changing to next ADC Channel - а если так то получаем 111 ( то есть опрос 6й ноги), но когда цикл начнется заново у нас все нарушится ибо нет обнуления.
break;


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

#123 Пользователь офлайн   qwer009 

  • Вставить ник
  • Цитировать
  • Раскрыть информацию

Отправлено 19 июня 2021 - 20:11

qwertyfruity, очень может быть, на 13 ноге еще может задаваться опорное напряжение то есть остальные измеряются относительно него. Разбирая чужой код нужно хорошо понимать то чего хотел добиться автор... Но последний вариант должен сработать . у вас там все переменные закоментированны не забыли открыт?

чтоб вот так было концовка

case 0x03:
timevalue = ADCH;
ADMUX |= (1 << MUX2);
break;

case 0x07:
depthvalue = ADCH;
ADMUX &= ~(1 << MUX0) & ~(1 << MUX1) & ~(1 << MUX2);
break;
Так було добре там і колись. Там, де без поту і там де без сліз.
Тільки не було в тому мети – Я так не можу, а як зможеш ти?
0

#124 Пользователь офлайн   qwertyfruity 

  • Вставить ник
  • Цитировать
  • Раскрыть информацию

Отправлено 19 июня 2021 - 21:06

Просмотр сообщенияqwer009 (19 июня 2021 - 20:11) писал:

qwertyfruity, очень может быть, на 13 ноге еще может задаваться опорное напряжение то есть остальные измеряются относительно него. Разбирая чужой код нужно хорошо понимать то чего хотел добиться автор... Но последний вариант должен сработать . у вас там все переменные закоментированны не забыли открыт?

чтоб вот так было концовка

case 0x03:
timevalue = ADCH;
ADMUX |= (1 << MUX2);
break;

case 0x07:
depthvalue = ADCH;
ADMUX &= ~(1 << MUX0) & ~(1 << MUX1) & ~(1 << MUX2);
break;

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

#125 Пользователь офлайн   qwer009 

  • Вставить ник
  • Цитировать
  • Раскрыть информацию

Отправлено 19 июня 2021 - 21:15

qwertyfruity, "SPI в коде аппаратный для цифрового потенциометра" - это просто так не поменять, ели на др пины вешать можно программно реализовать последовательный протокол, но это может нарушить тайминги. а схема ту которую хочется получить в результате? а что из деталей не по схеме?
Так було добре там і колись. Там, де без поту і там де без сліз.
Тільки не було в тому мети – Я так не можу, а як зможеш ти?
0

#126 Пользователь офлайн   qwertyfruity 

  • Вставить ник
  • Цитировать
  • Раскрыть информацию

Отправлено 25 июня 2021 - 20:38

Просмотр сообщенияqwer009 (19 июня 2021 - 21:15) писал:

qwertyfruity, "SPI в коде аппаратный для цифрового потенциометра" - это просто так не поменять, ели на др пины вешать можно программно реализовать последовательный протокол, но это может нарушить тайминги. а схема ту которую хочется получить в результате? а что из деталей не по схеме?

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

Собственно вот итог 5 месяцев потраченного времени (и нескольких запоротых заводских плат и корпуса): дилей на pt2399 c тапом, модуляцией и хвостами,после выключения байпаса. Фото прилагаю ниже, а также ссылку на YouTube-видео.

Прикрепленные изображения

  • Прикрепленное изображение: BFOgV1qo9yY.jpg
  • Прикрепленное изображение: 3xZN4DW1_X4.jpg
  • Прикрепленное изображение: smjvHqKekl8.jpg
  • Прикрепленное изображение: hEb0ccqguFE.jpg

Сообщение отредактировал qwertyfruity: 25 июня 2021 - 20:39

1

#127 Пользователь офлайн   serogka 

  • Вставить ник
  • Цитировать
  • Раскрыть информацию

Отправлено 06 октября 2022 - 00:21

Так, подводя итоги... можно лейку и прошивку выложить?
0

#128 Пользователь офлайн   qwertyfruity 

  • Вставить ник
  • Цитировать
  • Раскрыть информацию

Отправлено 15 октября 2022 - 11:08

Просмотр сообщенияserogka (06 октября 2022 - 00:21) писал:

Так, подводя итоги... можно лейку и прошивку выложить?

https://guitar-gear....post__p__156308
0

Поделиться темой:


  • 5 Страниц +
  • « Первая
  • 3
  • 4
  • 5
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей

Спасибо админам и создателям форума, которые развивали ресурс вплоть до мая 2022 года: Kanistra, Nazarett, Satriani, Плохиш, Тяп !