Важная информация

User Tag List

Страница 1 из 3 123 ПоследняяПоследняя
Показано с 1 по 10 из 24

Тема: AY-3-8910 / AY-3-8912 и Arduino. Странное поведение

  1. #1
    Junior
    Регистрация
    14.06.2017
    Адрес
    г. Курск
    Сообщений
    7
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Question AY-3-8910 / AY-3-8912 и Arduino. Странное поведение

    Здравствуйте уважаемые специалисты.

    Сразу скажу, что в плане практики со спектрумом и его деталями я новичок. С теорией немного получше, но не сильно.

    Я на досуге занимаюсь проектом создания автономного синтезатора на базе AY-3-8910 / AY-3-8912 и arduino (любая модель на atmega328). Устроен он следующим образом: весь ввод происходит через midi, внутри ардуино находится виртуальная модель синтезатора со своими "ручками" и другими высокоуровневыми параметрами, а в итоге всё это "рендерится" в низкоуровневый поток команд для AY.

    Это то что хотелось. а на практике у меня не получается нормально завести звуковой чип.
    И тема вродебы освещена на каждом углу и схем куча и все почти одинаковые. Но звука нет ни на смешаных каналах ни на каждом по-отдельности.

    Для начала и теста работоспособности я хотел повторить популярный плеер. Отсюда http://www.pvsm.ru/arduino/117267
    пробовал и тестовый скетч (самый первый, где данные берутся из массива) и полный вариант с картой.
    я пробовал разные варианты arduino, разные версии звуковых чипов.
    Заказывал на али две штуки AY-3-8910 и две штуки AY-3-8912 у разных продавцов. При подключении сверялся с даташитом по 100 раз. пробовал усилить выходы. получал просто типичный фоноый шум "цифрового характера".
    Все комбинации выдают одинаковый результат.

    Однажды собрав на беспаечной плате в очередной раз этот злосчастный плеер, я случайно задел провод земли и он выскочил из разъёма. Из выходов начал доноситься очень искаженный и безумно низкий (ну насколько это может AY) звук. сложно понять либо это очень заниженый "голос", или просто рваный "шум", но ритм явно прослушивался. На слух во всех трёх каналах шум абсолютно одинаковый.
    Я провёл тот же эксперимент на других чипах (и возможно привёл их в негодность). результат одинаковый.

    После этого мне пришла в голову ничем особо не подкреплённая идея, что это могут быть проблемы с несущей частотой и из-за этого звук так сильно искжается и занижается. экспериментируя с одним из чипов который я определил как "на убой" (окончательно). из него я помимо земли извлёк и clock. шум вообще никак не изменился. Попробовал собрать внешний генератор частоты на кварце. Результат тот же самый

    В итоге. когда всё подключено верно - звука нет, если отключить землю появляется звук ритмически совпадающий с песней или фрагментом, но с большими искажениями.

    И это для меня стало полным тупиком. Подскажите что это может быть. Куда копать? Подобного поведения я в сети так и не нашел. Сжег ли я чипы или все они изначальо были с дефектами и как это предотвратить с новыми.

    Я понимаю что идеально было бы проверить чипы внутри собственно спектрума, но увы у меня его нету и у знакомых вроде как тоже =(

    фотографии чипов.

    Скрытый текст




    [свернуть]


    Если для уточнения подробностей нужны ещё какие-то данные, я всё предоставлю, только скажите что именно.

    Заранее спасибо.

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2
    Guru Аватар для null_device
    Регистрация
    26.09.2009
    Адрес
    г. Красноярск
    Сообщений
    3,138
    Спасибо Благодарностей отдано 
    28
    Спасибо Благодарностей получено 
    105
    Поблагодарили
    83 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от lemnos Посмотреть сообщение
    Если для уточнения подробностей нужны ещё какие-то данные, я всё предоставлю, только скажите что именно.
    В первую очередь было бы неплохо предоставить схему того что у вас собрано. В частности, лично мне не совсем понятно, каким образом между собой "общается" ПГЗ и "мега".

    Цитата Сообщение от lemnos Посмотреть сообщение
    Сжег ли я чипы или все они изначальо были с дефектами и как это предотвратить с новыми.
    Было бы неплохо проверить их на "исправность". Например в том же самом спектруме (правда, для этого необходимо его наличие "в железе").
    Где-то проскакивала информация про "новодельные" чипы, которые работают и звучат "несколько иначе". Также, я не стал бы исключать откровенный "левак" из отбраковки. К сожалению, такое далеко не редкость в наше время.
    Когда есть, но не знаешь где - это все равно, что нету.

  4. #3
    Guru Аватар для SoftFelix
    Регистрация
    20.03.2007
    Адрес
    Санкт-Петербург
    Сообщений
    2,977
    Спасибо Благодарностей отдано 
    174
    Спасибо Благодарностей получено 
    106
    Поблагодарили
    90 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от lemnos Посмотреть сообщение
    Заказывал на али две штуки AY-3-8910
    Я 8910 получил с такой же маркировкой. В Спекке (КАЙ-1024_2010) всё работает.

    МГТФ - любимый провод!
    KAY-1024(4096)/SL-4/TURBO v2010 + Nemo-FDC + Nemo-IDE (CF 4GB) + SMUC2 Rev.B RTC (HDD 1.6GB + DVD-ROM) + PROF-ROM + ZXMC2 + GENERAL SOUND 2MB + ZX-BUS_TEE + FDD 3.5' + FDD 5.25' + VGA&PAL

  5. #4
    Junior
    Регистрация
    14.06.2017
    Адрес
    г. Курск
    Сообщений
    7
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от null_device Посмотреть сообщение
    В первую очередь было бы неплохо предоставить схему того что у вас собрано. В частности, лично мне не совсем понятно, каким образом между собой "общается" ПГЗ и "мега".
    вот схема подключения к ардуино, исполнение автора, могу в перерыве перерисовать в игле.


    вот тестовый код
    Код:
    void resetAY(){
      pinMode(A0, OUTPUT); // D0
      pinMode(A1, OUTPUT);
      pinMode(A2, OUTPUT);
      pinMode(A3, OUTPUT); // D3
      
      pinMode(4, OUTPUT); // D4
      pinMode(5, OUTPUT);
      pinMode(6, OUTPUT);
      pinMode(7, OUTPUT); // D7
      
      pinMode(8, OUTPUT);  // BC1
      pinMode(9, OUTPUT);  // BDIR
      
      digitalWrite(8,LOW);
      digitalWrite(9,LOW);
      
      pinMode(2, OUTPUT);
      digitalWrite(2, LOW);
      delay(100);
      digitalWrite(2, HIGH);
      delay(100);
      
      for (int i=0;i<16;i++) ay_out(i,0);
    }
    
    
    void setupAYclock(){
      pinMode(3, OUTPUT);
      TCCR2A = 0x23;
      TCCR2B = 0x09;
      OCR2A = 8;
      OCR2B = 3; 
    }
    
    void setup() {
      Serial.begin(9600);
      setupAYclock();
      resetAY();
    }
    
    void ay_out(unsigned char port, unsigned char data){
      PORTB = PORTB & B11111100;
    
      PORTC = port & B00001111;
      PORTD = PORTD & B00001111;
    
      PORTB = PORTB | B00000011;
      delayMicroseconds(1);
      PORTB = PORTB & B11111100;
    
      PORTC = data & B00001111;
      PORTD = (PORTD & B00001111) | (data & B11110000);
    
      PORTB = PORTB | B00000010;
      delayMicroseconds(1);
      PORTB = PORTB & B11111100;
    }
    
    unsigned int cb = 0;
    
    byte rawData[] = {
        0xFF, 0x00, 0x8E, 0x02, 0x38, 0x03, 0x02, 0x04, 0x0E, 0x05, 0x02, 0x07, 
        0x1A, 0x08, 0x0F, 0x09, 0x10, 0x0A, 0x0E, 0x0B, 0x47, 0x0D, 0x0E, 0xFF, 
        0x00, 0x77, 0x04, 0x8E, 0x05, 0x03, 0x07, 0x3A, 0x08, 0x0E, 0x0A, 0x0D, 
        0xFF, 0x00, 0x5E, 0x04, 0x0E, 0x05, 0x05, 0x0A, 0x0C, 0xFF, 0x04, 0x8E, 
        0x05, 0x06, 0x07, 0x32, 0x08, 0x00, 0x0A, 0x0A, 0xFF, 0x05, 0x08, 0x0A, 
        0x07, 0xFF, 0x04, 0x0E, 0x05, 0x0A, 0x0A, 0x04, 0xFF, 0x00, 0x8E, 0x04, 
        0x8E, 0x05, 0x00, 0x07, 0x1E, 0x08, 0x0F, 0x0A, 0x0B, 0x0D, 0x0E, 0xFF, 
        0x00, 0x77, 0x08, 0x0E, 0x0A, 0x06, 0xFF, 0x00, 0x5E, 0x07, 0x3E, 0x0A, 
        0x00, 0xFF, 0x07, 0x36, 0x08, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x8E, 0x07, 
        0x33, 0x08, 0x0B, 0x0A, 0x0F, 0x0D, 0x0E, 0xFF, 0x04, 0x77, 0x08, 0x06, 
        0x0A, 0x0E, 0xFF, 0x04, 0x5E, 0x07, 0x3B, 0x08, 0x00, 0xFF, 0x07, 0x1B, 
        0x0A, 0x00, 0xFF, 0xFF, 0xFF, 0x02, 0x1C, 0x03, 0x01, 0x04, 0x8E, 0x07, 
        0x33, 0x08, 0x0B, 0x0A, 0x0B, 0x0B, 0x23, 0x0D, 0x0E, 0xFF, 0x04, 0x77, 
        0x08, 0x06, 0x0A, 0x0A, 0xFF, 0x04, 0x5E, 0x07, 0x3B, 0x08, 0x00, 0x0A, 
        0x09, 0xFF, 0x07, 0x1B, 0x0A, 0x00, 0xFF, 0xFF, 0xFF, 0x02, 0x8E, 0x03, 
        0x00, 0x04, 0x0E, 0x05, 0x01, 0x07, 0x18, 0x08, 0x0F, 0x09, 0x0B, 0x0A, 
        0x0E, 0xFF, 0x00, 0x77, 0x02, 0x77, 0x04, 0x8E, 0x06, 0x01, 0x08, 0x0E, 
        0x09, 0x0A, 0x0A, 0x0D, 0xFF, 0x00, 0x5E, 0x02, 0x5E, 0x04, 0x0E, 0x05, 
        0x02, 0x06, 0x02, 0x09, 0x09, 0x0A, 0x0C, 0xFF, 0x02, 0x8E, 0x04, 0x8E, 
        0x07, 0x30, 0x08, 0x00, 0x09, 0x08, 0x0A, 0x0A, 0xFF, 0x02, 0x77, 0xFF,
        0xFF
    }
    
    void pseudoInterrupt(){
      while(rawData[cb]<0xFF){
       Serial.print("AY[");
       Serial.print(rawData[cb],DEC);
       Serial.print("] = ");
       Serial.print(rawData[cb+1],HEX);
       Serial.println();
       ay_out(rawData[cb],rawData[cb+1]);
       cb++;
       cb++;
     }
     if(rawData[cb]==0xff)cb++;
     
     if (cb>20*12) {
       Serial.println("==================================================== ZERO ==================================================");
       cb=0;
     }
    }
    
    void loop() {
      delay(20);
      pseudoInterrupt();
    }
    тактируется от шима на 3 пине.

    Цитата Сообщение от null_device Посмотреть сообщение
    Было бы неплохо проверить их на "исправность". Например в том же самом спектруме (правда, для этого необходимо его наличие "в железе").
    Где-то проскакивала информация про "новодельные" чипы, которые работают и звучат "несколько иначе". Также, я не стал бы исключать откровенный "левак" из отбраковки. К сожалению, такое далеко не редкость в наше время.
    Да было бы неплохо проверить "в железе", но увы пока нету возможности.
    А среди YM версий тоже такая же ситуация с леваком и отбраковкой?

    Цитата Сообщение от SoftFelix Посмотреть сообщение
    Я 8910 получил с такой же маркировкой. В Спекке (КАЙ-1024_2010) всё работает.
    Спасибо. Там как раз сейчас скидка, попытаю счастья у этого китайца.

  6. #5
    Guru
    Регистрация
    14.05.2015
    Адрес
    г. Харьков, Украина
    Сообщений
    2,940
    Спасибо Благодарностей отдано 
    150
    Спасибо Благодарностей получено 
    302
    Поблагодарили
    171 сообщений
    Mentioned
    4 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от lemnos Посмотреть сообщение
    вот тестовый код
    Может стоит откинуть UART, взять полный человеческий PD0 для шины данных что бы не выводить через куски портов по маске, сделать reset длиннее или вообще лучше кнопкой. В общем для теста стоит максимально все упростить, а то как то мудрено, как думаете ?
    Увы общий формат форума вышел из рамок моего любимого места , более тут не бываю.

  7. #6
    Junior
    Регистрация
    14.06.2017
    Адрес
    г. Курск
    Сообщений
    7
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от JV-Soft Посмотреть сообщение
    Может стоит откинуть UART, взять полный человеческий PD0 для шины данных что бы не выводить через куски портов по маске, сделать reset длиннее или вообще лучше кнопкой. В общем для теста стоит максимально все упростить, а то как то мудрено, как думаете ?
    Вечером обязательно переделаю под PORTD и долгий ресет и проверю на всех доступных чипах.

    Этот код и подключение я брал как заведомо провереные. Из оригинальной статьи которую автор ещё и на хабре постил (или гиктаймс). В комментариях не было жалоб на то что этот вариант не работает. Хотя конечно там комментарии часто вообще не о том =)

  8. #7
    Member
    Регистрация
    24.03.2008
    Адрес
    г. Рыбинск
    Сообщений
    123
    Спасибо Благодарностей отдано 
    3
    Спасибо Благодарностей получено 
    4
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Делал примерно то же самое, только не на ардуино, а на ПЛИСе. Там были какие-то ньюансы, вроде бы в теме я их все описывал. По коду, вижу, что у меня используется отдельный генератор на 1.75 МГц. В то же время, в журнале записано, что этот генератор в итоге не пригодился. Не помню уже
    Мне повезло, ведь я не знал, рабочая ли микросхема, к тому же, я ее грубо выпаивал из старой платы. В случае с китайскими микросхемами, я бы начал с проверки их работоспособности в заведомо рабочем проекте (спектруме).

  9. #8
    Sinclair User Аватар для Eltaron
    Регистрация
    16.01.2005
    Адрес
    Ekaterinburg
    Сообщений
    2,050
    Записей в дневнике
    8
    Спасибо Благодарностей отдано 
    154
    Спасибо Благодарностей получено 
    466
    Поблагодарили
    327 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Запустил скетч на ардуине и поглядел тайминги.
    На третьей ноге 1.7 МГц, все путём. А вот картина при записи в регистры меня немного смущает. Вот скрин, это пишется AY[0x02] = 0x38, каналы 0..6 - D0..D6, седьмой - BC1):


    Выделенное маркерами время (это Address Setup Time по даташиту) должно быть минимум 300 нс, а оно меньше. На картинке это, правда, уже данные пишутся, но тайминги записи адреса и данных в программе одинаковые. Что, кстати, само по себе неправильно, т.к. Data Pulse Width должен быть аж 1800 нс! А он всего 170 нс. Не знаю, как так получилось, видимо точность у delayMicroseconds(1) никудышная. Тут явно нужно поиграться задержками.
    Граф Дракула наш кумир, патамушта он вомпир!
    VKINK 9 : BORDER NOT PI

  10. #9
    Guru Аватар для HardWareMan
    Регистрация
    26.02.2011
    Адрес
    г. Павлодар, Казахстан
    Сообщений
    4,508
    Спасибо Благодарностей отдано 
    361
    Спасибо Благодарностей получено 
    634
    Поблагодарили
    473 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вот они, жертвы ардуины. Delay() и delayMicroseconds() у этой АрдуОСи ***** и никогда не выдерживает точности на малых отрезках времени. На больших, конечно, работает, ибо если ждешь 1 секунду, то потерю 1 микросекунды заметить тяжело. Я не знаю, почему именно это происходит, так как я не знаю, как именно этот самый делай там устроен, но я всегда делал по-своему, с использованием таймера или нет (это по ситуации). Никогда не доверяйте чужому велосипеду, он вас может подвести в критичный момент.

  11. #10
    Junior
    Регистрация
    14.06.2017
    Адрес
    г. Курск
    Сообщений
    7
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Всем большое спасибо за помощь!

    Благодаря вашим советам я таки смог завести эту конструкцию.

    Решил сам переделать этот тестовый скетч с нуля максимально просто, но приближено к финальным целям.
    В итоге я планировал подключить AY через регистр, что и сделал в тестовом скетче. Поменял частоту клока на 2Мгц.
    В дальнейшем планирую очень осторожно переписать writeAYRegister с ардуинных функций на работу с портами и регулируемыми таймингами.
    Ардуинные функции очень медленные, поэтому наверное получается что все тайминги выдерживаются. Конечно в таком виде врядли оставлю в финале. Но как по мне лучше двигаться от работающего варианта, чем от неработающего.

    под спойлером код и схема подключения

    Скрытый текст



    Код:
    #include <SPI.h>
    
    //pins
    #define BC1 9
    #define BCDIR 8
    #define SS 4
    #define AY_CLOCK 3
    
    //clock
    #define PRESCALE 1
    #define OCR2A_VAL 3
    
    SPISettings spiSettings(16000000, MSBFIRST, SPI_MODE0);
    
    void setup() {
      pinMode(SS, OUTPUT);
      pinMode(BC1, OUTPUT);
      pinMode(BCDIR, OUTPUT);
      pinMode(AY_CLOCK, OUTPUT);
      initAYClock();
      SPI.begin();
    }
    
    void loop() {
      pseudoInterrupt();
      delay(20);
    }
    
    void initAYClock() {
      TCCR2A = ((1 << WGM21) | (1 << COM2B0));
      TCCR2B = (1 << CS20);
      TIMSK2 = 0;
      OCR2A = OCR2A_VAL;
    }
    
    uint8_t cb = 0;
    
    uint8_t rawData[] = {
        0xFF, 0x00, 0x8E, 0x02, 0x38, 0x03, 0x02, 0x04, 0x0E, 0x05, 0x02, 0x07, 
        0x1A, 0x08, 0x0F, 0x09, 0x10, 0x0A, 0x0E, 0x0B, 0x47, 0x0D, 0x0E, 0xFF, 
        0x00, 0x77, 0x04, 0x8E, 0x05, 0x03, 0x07, 0x3A, 0x08, 0x0E, 0x0A, 0x0D, 
        0xFF, 0x00, 0x5E, 0x04, 0x0E, 0x05, 0x05, 0x0A, 0x0C, 0xFF, 0x04, 0x8E, 
        0x05, 0x06, 0x07, 0x32, 0x08, 0x00, 0x0A, 0x0A, 0xFF, 0x05, 0x08, 0x0A, 
        0x07, 0xFF, 0x04, 0x0E, 0x05, 0x0A, 0x0A, 0x04, 0xFF, 0x00, 0x8E, 0x04, 
        0x8E, 0x05, 0x00, 0x07, 0x1E, 0x08, 0x0F, 0x0A, 0x0B, 0x0D, 0x0E, 0xFF, 
        0x00, 0x77, 0x08, 0x0E, 0x0A, 0x06, 0xFF, 0x00, 0x5E, 0x07, 0x3E, 0x0A, 
        0x00, 0xFF, 0x07, 0x36, 0x08, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x8E, 0x07, 
        0x33, 0x08, 0x0B, 0x0A, 0x0F, 0x0D, 0x0E, 0xFF, 0x04, 0x77, 0x08, 0x06, 
        0x0A, 0x0E, 0xFF, 0x04, 0x5E, 0x07, 0x3B, 0x08, 0x00, 0xFF, 0x07, 0x1B, 
        0x0A, 0x00, 0xFF, 0xFF, 0xFF, 0x02, 0x1C, 0x03, 0x01, 0x04, 0x8E, 0x07, 
        0x33, 0x08, 0x0B, 0x0A, 0x0B, 0x0B, 0x23, 0x0D, 0x0E, 0xFF, 0x04, 0x77, 
        0x08, 0x06, 0x0A, 0x0A, 0xFF, 0x04, 0x5E, 0x07, 0x3B, 0x08, 0x00, 0x0A, 
        0x09, 0xFF, 0x07, 0x1B, 0x0A, 0x00, 0xFF, 0xFF, 0xFF, 0x02, 0x8E, 0x03, 
        0x00, 0x04, 0x0E, 0x05, 0x01, 0x07, 0x18, 0x08, 0x0F, 0x09, 0x0B, 0x0A, 
        0x0E, 0xFF, 0x00, 0x77, 0x02, 0x77, 0x04, 0x8E, 0x06, 0x01, 0x08, 0x0E, 
        0x09, 0x0A, 0x0A, 0x0D, 0xFF, 0x00, 0x5E, 0x02, 0x5E, 0x04, 0x0E, 0x05, 
        0x02, 0x06, 0x02, 0x09, 0x09, 0x0A, 0x0C, 0xFF, 0x02, 0x8E, 0x04, 0x8E, 
        0x07, 0x30, 0x08, 0x00, 0x09, 0x08, 0x0A, 0x0A, 0xFF, 0x02, 0x77, 0xFF,
        0xFF
    };
    
    void pseudoInterrupt(){
      while(rawData[cb] < 0xFF){
        writeAYRegister(rawData[cb], rawData[cb+1]);
        cb += 2;
      }
      if(rawData[cb] == 0xff) {
        cb++;
      }
      if (cb > 20*12) {
        cb = 0;
      }
    }
    
    void writeAYRegister(uint8_t address, uint8_t data) {
      SPI.beginTransaction(spiSettings);
    
      digitalWrite(BC1, LOW);
      digitalWrite(BCDIR, LOW);
      //write address
    
      digitalWrite(SS, LOW);
      SPI.transfer(address);
      digitalWrite(SS, HIGH);
    
      digitalWrite(BC1, HIGH);
      digitalWrite(BCDIR, HIGH);
    
      digitalWrite(BC1, LOW);
      digitalWrite(BCDIR, LOW);
    
      //write data
      digitalWrite(BC1, LOW);
      digitalWrite(BCDIR, HIGH);
    
      digitalWrite(SS, LOW);
      SPI.transfer(data);
      digitalWrite(SS, HIGH);
    
      digitalWrite(BC1, LOW);
      digitalWrite(BCDIR, LOW);
    
      SPI.endTransaction();
    }
    [свернуть]


    Цитата Сообщение от HardWareMan Посмотреть сообщение
    Вот они, жертвы ардуины. Delay() и delayMicroseconds() у этой АрдуОСи ***** и никогда не выдерживает точности на малых отрезках времени. На больших, конечно, работает, ибо если ждешь 1 секунду, то потерю 1 микросекунды заметить тяжело. Я не знаю, почему именно это происходит, так как я не знаю, как именно этот самый делай там устроен, но я всегда делал по-своему, с использованием таймера или нет (это по ситуации). Никогда не доверяйте чужому велосипеду, он вас может подвести в критичный момент.
    Не такие уж и жертвы, свою работу в качестве входного порога и развлечения с железом, ардуина всё-таки выполняет, но думаю это тема отдельного разговора Да этот delay впринципе *****, но и замена delayMicroseconds на _delay_us не сильно помогла, увы.

    А ещё подскажите. стоит ли мне о дальнейшей судьбе собираемого устройства писать сюда. или потом лучше отдельную тему создать?

Страница 1 из 3 123 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Плата переходник AY-8910 на AY-8912
    от Addison в разделе Звук
    Ответов: 34
    Последнее: 17.02.2024, 18:27
  2. Странное поведение спектрума
    от JeRrS в разделе Несортированное железо
    Ответов: 44
    Последнее: 05.04.2016, 12:12
  3. Ответов: 3
    Последнее: 08.12.2014, 20:51
  4. Продам AY-3-8910 и AY-3-8912
    от ChipManyak в разделе Барахолка (архив)
    Ответов: 20
    Последнее: 05.02.2011, 13:49
  5. AY-3-8910(8912) и ВГ93
    от ALEXEY.GORDEEV в разделе Барахолка (архив)
    Ответов: 1
    Последнее: 02.12.2007, 09:21

Ваши права

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