наверно многие читали мои "крик души" в теме " как прошить AT91SAM7S256". Данное дело получило логическое развитие, а именно сеичас интерес мои к даннои плате все возрастает и вопросов соответвенно все больше. Усиленно изучаю книгу "Карнигана и Ричи", но как то тяжело перенести Си команды на использование их в МК. Но ладго, это лирическое отсупление.
имею следующий код, компилирумый без ошибок, но с 3 предупреждениями.
Код
#include "AT91SAM7S64.h"
#include "stdio.h"
#include "usart.h"
#include "adc.h"
#include "system.h"
#include "string.h"
#define BLINK_BIT (1UL << 8)
void Delay (unsigned long a)
{ while (--a!=0); }
//MAIN POINTER
AT91PS_PIO m_pPio = AT91C_BASE_PIOA;
AT91PS_ADC m_pADC = AT91C_BASE_ADC;
AT91PS_RSTC m_pRSTC = AT91C_BASE_RSTC;
//AT91PS_PIO p_pPio = AT91C_BASE_PIOA;
AT91PS_PMC p_pPMC = AT91C_BASE_PMC;
//it's a simple delay
//void Delay (unsigned long a) { while (--a!=0); }
unsigned char* CalcVolt(unsigned int volt);
unsigned char res[12];//переменная без знака 1 ьаит.
int main()
{
/**** System init ****/
InitFrec();
InitADC();
/**** UART ****/
//InitUSART0();
// InitUSART1();
//Initialization
InitPeriphery();
while(1)//оператор уикла??
{
//check button 2 pressed
if(!((m_pPio->PIO_PDSR) & BIT20)) {
//ClearTerminal();
CalcVolt(GetValue_chanel4());
// write_str_USART1(res);
Delay(900000);
}
}
}
unsigned char* CalcVolt(unsigned int volt) {
float V;
V = (float)volt * 3.3/1024;
sprintf((char *)res,"Volt %0.2f V",V);
volatile int i;
for(;;)
{
*AT91C_PIOA_SODR = BLINK_BIT;
for(i = 0; i < 1000000; i++);
Delay(V);
*AT91C_PIOA_CODR = BLINK_BIT;
for(i = 0; i < 100000; i++);
Delay(V);
}
return 0;
}
#include "stdio.h"
#include "usart.h"
#include "adc.h"
#include "system.h"
#include "string.h"
#define BLINK_BIT (1UL << 8)
void Delay (unsigned long a)
{ while (--a!=0); }
//MAIN POINTER
AT91PS_PIO m_pPio = AT91C_BASE_PIOA;
AT91PS_ADC m_pADC = AT91C_BASE_ADC;
AT91PS_RSTC m_pRSTC = AT91C_BASE_RSTC;
//AT91PS_PIO p_pPio = AT91C_BASE_PIOA;
AT91PS_PMC p_pPMC = AT91C_BASE_PMC;
//it's a simple delay
//void Delay (unsigned long a) { while (--a!=0); }
unsigned char* CalcVolt(unsigned int volt);
unsigned char res[12];//переменная без знака 1 ьаит.
int main()
{
/**** System init ****/
InitFrec();
InitADC();
/**** UART ****/
//InitUSART0();
// InitUSART1();
//Initialization
InitPeriphery();
while(1)//оператор уикла??
{
//check button 2 pressed
if(!((m_pPio->PIO_PDSR) & BIT20)) {
//ClearTerminal();
CalcVolt(GetValue_chanel4());
// write_str_USART1(res);
Delay(900000);
}
}
}
unsigned char* CalcVolt(unsigned int volt) {
float V;
V = (float)volt * 3.3/1024;
sprintf((char *)res,"Volt %0.2f V",V);
volatile int i;
for(;;)
{
*AT91C_PIOA_SODR = BLINK_BIT;
for(i = 0; i < 1000000; i++);
Delay(V);
*AT91C_PIOA_CODR = BLINK_BIT;
for(i = 0; i < 100000; i++);
Delay(V);
}
return 0;
}
Прошу помощи знатоков, что тут лишнее, чепго не хватает, может както можно упрастить сию задачу?
Данный код был изобретен сращением двух примеров. Задача, создать зависимость между частотои моргания 8 ноги, от поожния переменного резистора, подключенного к 20 ноге.