Здравствуйте! Вопрос - наладил более-менее установку уровня ЦАП на Arduino Due с компьютера (интерфейс написан на С++), однако при циклической записи через некоторое количество циклов запись прекращается и устанавливается нулевой уровень. В чем может быть дело?
Скетч ардуино: Код (Text): int in; void setup() { analogReadResolution(8); analogWriteResolution(8); Serial.begin(9600); } void loop() { while (Serial.available() == 0); in = Serial.read(); analogWrite(DAC1, in); Serial.println(in); } Для интерфейса использовались cpp и header отсюда: http://playground.arduino.cc/Interfacing/CPPWindows Код отправки: Код (Text): char buf[256]=""; while(com1.IsConnected()) { buf[0]=1; com1.WriteData(buf,1); buf[0]=255; com1.WriteData(buf,1); } На выходе получаем что-то похожее на меандр, частота которого зависит от скорость передачи данных, который вскоре пропадает.
Не помогло. Количество нормальных циклов при записи со скоростью 9600 оставило ~12000. При введении задержки 10 мсек - 4000 раз. Без задержки со скоростью 115200 - те же 4000 раз. После этого количества циклов запись не прекращается, но очень сильно замедляется - 1-2 цикла в секунду. То есть функция WriteData не возвращает false.