Да, сначала вы не можете использовать libpic30.h. Компилятор не должен позволять вам легко использовать его. Вы захотите использовать xc.h и проделать это для своего подходящего устройства PIC32. Я не уверен, где находится функция задержки, но там есть где-то там, где вы хотите. Если вы не можете его найти. Посмотрите в Tick.c для устаревших библиотек TCP/IP, там есть письменная задержка для 32-разрядных устройств.
void SSTDelay10us(U32 tenMicroSecondCounter)
{
volatile S32 cyclesRequiredForEntireDelay;
int clock;
clock = 80000000;
if (clock <= 500000) //for all FCY speeds under 500KHz (FOSC <= 1MHz)
{
//10 cycles burned through this path (includes return to caller).
//For FOSC == 1MHZ, it takes 5us.
//For FOSC == 4MHZ, it takes 0.5us
//For FOSC == 8MHZ, it takes 0.25us.
//For FOSC == 10MHZ, it takes 0.2us.
}
else
{
//7 cycles burned to this point.
//We want to pre-calculate number of cycles required to delay 10us *
// tenMicroSecondCounter using a 1 cycle granule.
cyclesRequiredForEntireDelay = (S32)(clock/100000) * tenMicroSecondCounter;
//We subtract all the cycles used up until we reach the
//while loop below, where each loop cycle count is subtracted.
//Also we subtract the 5 cycle function return.
cyclesRequiredForEntireDelay -= 24; //(19 + 5)
if (cyclesRequiredForEntireDelay <= 0)
{
// If we have exceeded the cycle count already, bail!
}
else
{
while (cyclesRequiredForEntireDelay > 0) //19 cycles used to this point.
{
cyclesRequiredForEntireDelay -= 8; //Subtract cycles burned while doing each delay stage, 8 in this case.
}
}
}
}
Действительно. «30» там относится к серии pic30, первой из 16-разрядных. Но этот вопрос является способом общего, так как этот заголовок представляет собой смесь всех видов вещей. Некоторые могут иметь прямые эквиваленты, некоторые - нет. Что вы точно используете из этого заголовка? –
__delay32 называть самое главное. – vincenzorochetta
@MarcovandeVoort Я нашел ваш комментарий, выполнив поиск о том, почему я использую библиотеку для dsPIC33, которую я использую, называется pic30 - теперь это имеет смысл! После того, как вы нашли свой комментарий, я попытался найти в Интернете pic30 и не могу найти ничего, это древний чип? – w1res