thor_nsk писал(а):Поэтому для пробы сделал отдельный проект, просто АЦП в цикле.
thor_nsk писал(а):после подачи питания что-то появляется в регистре АЦП и потом не меняется
thor_nsk писал(а):Код прилагаю.
Disable Timer0
Config Pwr_mp3 = Input
Config Tx = Input
Enable Int0
Waitms 50
Powerdown 'Idle/Powerdown
Disable Int0
Waitms 50
Config Tx = Output
Config Pwr_mp3 = Output
Reset Pwr_mp3 ' включения блока мп3
Temp_word = Getadc(1)
Temp_word = 0
Enable Timer0
Madf писал(а):thor_nsk писал(а):Поэтому для пробы сделал отдельный проект, просто АЦП в цикле.
И? Работает?
Передатчик
int X = analogRead(axisX);
int Y = analogRead(axisY);
Serial.print(X);
Serial.print(",");
Serial.print(Y);
Serial.print(",");
Serial.println(key);
//Serial.println('\n');
Приемник
Servo servX;
Servo servY;
int servXPoz = 90;
int servYPoz = 0;
int valX;
int valY;
char key ;
String strX;
String strY;
void loop() {
int i=0;
char buffer[12];
if(Serial.available()){
delay(50);
while( Serial.available() && i< 12) {
buffer[i++] = Serial.read();
}
buffer[i++]='\n';
}
if(i>0){
sscanf(buffer, "%[^','],%[^','],%s", &strX, &strY, &key);
}
valX = strX.toInt();
//valX = atoi(strX);
servXPoz = map(valX, 0, 1023, 0, 180);
servX.write(servXPoz);
valY = strY.toInt();
servYPoz = map(valY, 0, 1023, 0, 180);
servY.write(servYPoz);
moving();
}
void moving(){
switch(key){
case '5':
ServPravo();
break;
case '4':
ServLevo();
break;
case '3':
ServCentr();
break;
}
}
void ServPravo(){
servXPoz = 0;
servYPoz = 0;
servX.write(servXPoz);
servY.write(servYPoz);
}
void ServLevo(){
servXPoz = 180;
servYPoz = 0;
servX.write(servXPoz);
servY.write(servYPoz);
}
void ServCentr(){
servXPoz = 90;
servYPoz = 0;
servX.write(servXPoz);
servY.write(servYPoz);
}
eeprom char pfone_num[12];
void ip_send(char *str);
ip_send(pfone_num); //так ничего не получается
}
vvk74 писал(а):В начале идёт инициализация т0, а в прерываниии почему-то т1. И с импульсами лучше pwm использовать на таймере т1
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5