|  | roboforum.ruТехнический форум по робототехнике. |  | 

avr123.nm.ru писал(а):дак в вашем МК есть "железный" TWI ?




avr123.nm.ru писал(а):конечно, ведь автор может как угодно назвать файлы.
Приципите пожалуйста ваши i2c.c и i2c.h



avr123.nm.ru писал(а):ну как я и говорил - это библиоьеки twi - они не могут сделать интерфейс i2c на ножках IO кроме тех что закремплены за аппаратным TWI.
поэтому логично их назвать twi.
а библиотеки для i2с на МК без аппаратного TWI могут создавать интерфейс практически на любый ножках IO.





=DeaD= писал(а):Принял еще одно важное, как я считаю, для успеха проекта решение - нужно выкинуть из проекта всю софтовую часть на ПК, иначе буду вынужден влезать во все подряд среды разработки и делать там библиотеки. А это пока "некогда" - иначе сдохнуть можно
Ограничусь поиском и выкладыванием ссылок на примеры как во разных средах разработки достучаться к COM-порту.

Виталий писал(а):Я конечно не знаю, но мне кажется, что для проекта необходимы будут 2 вещи:
1. Четкое, ясное представление о протоколах взаимодействия, их спецификации.
2. Программная документация описывающая интерфейсы модулей и логику их работы.
3. Пример реализации под какой-либо средой.



Виталий писал(а):Программная документация на модуль описывающая логику его работы и внешние интерфейсы в корне отличается от примера реализации.
Первое может не содержать в себе ни строки кода...


Виталий писал(а):2. Программная документация описывающая интерфейсы модулей и логику их работы.

Виталий писал(а):3. Пример реализации под какой-либо средой.
 ):
):AnsiString doRequest(AnsiString request, TCommPort* com){
  AnsiString r=request+"\n";
  char *cmd=r.c_str();
  com->PutString(cmd);
  char c;
  AnsiString res="";
  long int countdown=200000000;
  int finish=0;
  while(finish<2){
    while(--countdown && (com->InBuffUsed==0));
    if(countdown==0){
      return "XFFTimeout!";
    };
    c=com->GetChar();
    if(c=='R' || c=='X'){
      finish=1;
    };
    if(finish==1 && c>=' '){ res=res+c; };
    if(c=='\n' && finish==1){
      finish=2;
    };
  };
  return res;
};    doRequest("QFF000801",CommPort1);
    doRequest("QFF002801",CommPort1);
    doRequest("QFF000900",CommPort1);
    doRequest("QFF002901",CommPort1);
    doRequest("QFF000A00",CommPort1);
    doRequest("QFF002A01",CommPort1);
    doRequest("QFF000B00",CommPort1);
    doRequest("QFF002B01",CommPort1);
if(CheckBox2->Checked){
    doRequest("QFF000801",CommPort1);
  }else{
    doRequest("QFF000800",CommPort1);
  };
  AnsiString r=doRequest("QFF018C",CommPort1);
  if(r=="R01"){
    CheckBox6->Checked=TRUE;
  }else{
    CheckBox6->Checked=FALSE;
  };

Вернуться в Электроника, электротехника
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0