реклама на сайте
подробности

 
 
> использование АЦП на AT91SAM7S256, функция "блинкера" от положения переменного резистора
alexan300
сообщение Nov 19 2009, 19:39
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 128
Регистрация: 17-03-08
Пользователь №: 35 988



Здравствуйте уажаемые господа!
наверно многие читали мои "крик души" в теме " как прошить 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;
}

Прошу помощи знатоков, что тут лишнее, чепго не хватает, может както можно упрастить сию задачу?
Данный код был изобретен сращением двух примеров. Задача, создать зависимость между частотои моргания 8 ноги, от поожния переменного резистора, подключенного к 20 ноге.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 02:05
Рейтинг@Mail.ru


Страница сгенерированна за 0.01375 секунд с 7
ELECTRONIX ©2004-2016