User Tag List

Показано с 11 по 20 из 42

Тема: Вопросы начинающего Ардуинщика...

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    20.03.2007
    Адрес
    Санкт-Петербург
    Сообщений
    3,000
    Спасибо Благодарностей отдано 
    201
    Спасибо Благодарностей получено 
    113
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Вопросы начинающего Ардуинщика...

    Очень хочется разобраться, но туплю по-страшному. Именно в программировании на Си (Ардуино IDE). Ещё два месяца тому назад я понятия не имел с данным синтаксисом. В наличии китайская Ардуино UNO (на CH340G). Кое-что ужЕ понимаю. На Спекке очень давно писал на Басике и Ассме, но без фанатизма. Сейчас есть цель написать поддержку автономного программатора для отечественного микроконтроллера 1986ВЕ91Т на базе Ардуино. Связь через UART (Rx-Tx с преобразователем UART TTL <-> RS-422), чтение с SD. Железо всё ужЕ разработал и собрал - всё работает. Фото будет чуть позже. Нужен человек (люди), способный спокойно подсказать по алгоритму и синтаксису.

    Сейчас дошло время до процедуры начальной синхронизации с МК. Там по даташиту и исходникам для ПЦ (тоже на Си++ ) всё довольно "протсто":

    1. Цикле заслали в порт 512 байт с кодом 0х00 (512 нулей). На ПЦ это делается дважды.
    2. МК должен ответить тремя (3) байтами - 0d, 0a, 3e - это успешная синхронизация. На ПЦ просто проверяют, что пришло 3 байта и НЕ парсят их.
    3. Если ответил иное - ошибка.

    На ПЦ это выглядит так:

    Код:
    txdbuf[0] = 0x0;
    	for(i=0;i<512;i++)
    		com.WriteBlock(txdbuf,1);
    	if	(!com.ReadBlock(rxdbuf,3))
    	{
    		for(i=0;i<512;i++)
    			com.WriteBlock(txdbuf,1);		
    		if	(!com.ReadBlock(rxdbuf,3))
    		{
    			str = "ошибка синхронизации!";
    			InsertStrToList();		
    			com.Close();
    			return;
    		}
    	}
    
    	m_list.DeleteString(m_list.GetCount()-1);
    	str = "Синхронизация...ОК!";
    Я родил вот это, но оно всегда пишет (у меня вывод на LCD 16X2) "Succes!".

    Код:
    void SYNC_1986(){ //функция синхронизации с 1986ВЕ91
    
      lcd.clear();
      lcd.setCursor(1,0);
      lcd.print("Try to Sync...");
      lcd.setCursor(5,1); //подготовим позицию для печати результата ("Failed!" / "Succes!")
       
      while(Serial.available()) Serial.read(); //вот это работает - очищает буфер UART'перед работой!!!
    
     for (int i=0; i < 512; i++){
          Serial.write(0); //выдали в порт 512 байт 0х00
     }
           if (!Serial.available() == 3){ //приняли 3 байта от контроллера?
            lcd.print("Failed!");       }
              else {
                lcd.print("Succes!");
                   }
                               }

    Добавил фото программатора (внутри Ардуино УНО с обвесом).















    Последний раз редактировалось SoftFelix; 12.02.2020 в 22:57. Причина: добавил фото
    МГТФ - любимый провод!
    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

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

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

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

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

Похожие темы

  1. Вопросы начинающего ATM'щика
    от Максагор в разделе Разный софт
    Ответов: 43
    Последнее: 19.09.2023, 13:52
  2. Вопросы начинающего спектрумопаятеля :)
    от The_Medved в разделе Несортированное железо
    Ответов: 44
    Последнее: 08.10.2011, 22:59
  3. Монитор начинающего Спектрумиста
    от Doktor в разделе Для начинающих
    Ответов: 5
    Последнее: 14.04.2011, 11:02
  4. Ответов: 5
    Последнее: 25.08.2008, 01:13

Ваши права

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