dexter_khm 0 29 августа, 2011 Опубликовано 29 августа, 2011 · Жалоба Прошу помощи !!!! Есть некий прибор с которым мне сейчас приходится разбираться. Собран он на at91sam7s256 на выходе РА24 зацеплен тестовый светодиод. До этого с АРМами не работал, занимался AVR под CodeVision. Проблема в том что не могу найти нормального Старт-ап проекта под IAR, есть книга Редькина но это полный мрак. Люди не оставьте в тупике "Поможите чем сможите" ))))) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kovigor 5 29 августа, 2011 Опубликовано 29 августа, 2011 · Жалоба :smile3046: Проблема в том что не могу найти нормального Старт-ап проекта под IAR, есть книга Редькина но это полный мрак. Люди не оставьте в тупике "Поможите чем сможите" ))))) IAR слишком тяжел для старта. Советую начинать с Keil. С ним и примеры проектов поставляются, и вашего - в том числе ... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dexter_khm 0 29 августа, 2011 Опубликовано 29 августа, 2011 (изменено) · Жалоба Да я читал про Кейл но вся проблема в том что проект воплощен как в железе атак же на него в iar были подготовлены библиотеки и функции. Моя задача сейчас дописать пару функций. Но вот уже как неделя прошла а я немогу его заставить "шевелить" ногой. Изменено 29 августа, 2011 пользователем dexter_khm Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kovigor 5 29 августа, 2011 Опубликовано 29 августа, 2011 · Жалоба Да я читал про Кейл но вся проблема в том что проект воплощен как в железе атак же на него в iar были подготовлены библиотеки и функции. Моя задача сейчас дописать пару функций. Но вот уже как неделя прошла а я немогу его засталить "шевелить" ногой. С IAR'ом также поставляются примеры. Плюс к этому с ним же поставляются различные "TUTORIALs" и "Getting Started ...", в которых подробно и по шагам разбирается, как создать новый проект. Очень советую начать с них ... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kumle 0 30 августа, 2011 Опубликовано 30 августа, 2011 (изменено) · Жалоба На мой взгляд IAR всетаки попроще. А книга Редькина не понравилась Вот посмотри мой стартовый проектик, может че прояснится. copy_started_sram_flash_wiggler.7z Изменено 30 августа, 2011 пользователем kumle Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mempfis_ 0 30 августа, 2011 Опубликовано 30 августа, 2011 · Жалоба :rolleyes: Прошу помощи !!!! Есть некий прибор с которым мне сейчас приходится разбираться. Собран он на at91sam7s256 на выходе РА24 зацеплен тестовый светодиод. До этого с АРМами не работал, занимался AVR под CodeVision. Проблема в том что не могу найти нормального Старт-ап проекта под IAR, есть книга Редькина но это полный мрак. Люди не оставьте в тупике "Поможите чем сможите" ))))) Не пробовали создать пустой проект а иар под Ваш процессор, добавить к нему файл main.c в котором определить функцию void main(void) с пустым циклом внутри. Добавить стартап из примеров, в линкере подключить icf-файл для 7s256 а дальше по ошибкам поискать файлы board_lowlevel.c board_memories.c чтобы добавить их к проекту и т.д. ...... На сайте полно примеров для иар для моргания светодиодом. Выкладываю пример моргания светодиодом который создал давно когда начал разбираться с 7s64 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dexter_khm 0 30 августа, 2011 Опубликовано 30 августа, 2011 (изменено) · Жалоба Всем спасибо за примеры мигания :rolleyes: . Вот теперь бы мне еще инициализацию АЦП на первом канале. Нашел вот такой пример http://www.uschema.com/face/2010/11/at91sa...b0%d1%86%d0%bf/ но только чет не работает он уменя из АЦП читается одно и тоже значение. Он конечно для GCC сделан но я все пересмотрел вроде нормально IAR не ругается но значение всевремя одно и тоже Изменено 30 августа, 2011 пользователем dexter_khm Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mempfis_ 0 30 августа, 2011 Опубликовано 30 августа, 2011 · Жалоба Вы в папку с примерами заглядывали вообще? Там первый же проект - работа с АЦП Когда разбирался именно оттуда брал работу с АЦП - всё завелось с первого раза Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dexter_khm 0 30 августа, 2011 Опубликовано 30 августа, 2011 (изменено) · Жалоба Я дико извиняюсь вот только что посмотрел в папку examples\arm там только работа семисегментного индикатора может я не там смотрю конечно но больше ничего нет скинте пожалуйста пример с АЦП Изменено 30 августа, 2011 пользователем dexter_khm Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mempfis_ 0 31 августа, 2011 Опубликовано 31 августа, 2011 · Жалоба Все примеры из папки для sam7s Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dexter_khm 0 31 августа, 2011 Опубликовано 31 августа, 2011 · Жалоба Все примеры из папки для sam7s да большое спасибо за пример. Я вчера понял почему у меня нет примеров скачал себе с иара Демо версию Кик старт там примеров реально много Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Zelepuk 0 31 августа, 2011 Опубликовано 31 августа, 2011 · Жалоба Я дико извиняюсь вот только что посмотрел в папку examples\arm там только работа семисегментного индикатора может я не там смотрю конечно но больше ничего нет скинте пожалуйста пример с АЦП насколько я помню примеры лежат в examples\atmel Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dexter_khm 0 31 августа, 2011 Опубликовано 31 августа, 2011 · Жалоба Да спасибо я нашел уже примеры!!! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dexter_khm 0 2 сентября, 2011 Опубликовано 2 сентября, 2011 · Жалоба Вобщем модифицировал я пример "basic-adc-project" хотел сделать на первом канале АЦП срабатывание 5 диапазонов. Тоесть если значение в первом диапазоне то один раз мигнуть светодиодом, если во втором то два раза мигнуть. Вобщем все срабатывает только в итоге светодиод мигает вместо одного два раза, вместо 3 - 6 , вместо 5 - 10. Даже не знаю как так может быть Глянте пожалуйста что не так???? basic_adc_project.rar Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mempfis_ 0 4 сентября, 2011 Опубликовано 4 сентября, 2011 (изменено) · Жалоба Вобщем модифицировал я пример "basic-adc-project" хотел сделать на первом канале АЦП срабатывание 5 диапазонов. Тоесть если значение в первом диапазоне то один раз мигнуть светодиодом, если во втором то два раза мигнуть. Вобщем все срабатывает только в итоге светодиод мигает вместо одного два раза, вместо 3 - 6 , вместо 5 - 10. Даже не знаю как так может быть Глянте пожалуйста что не так???? Посмотрел на Ваш код. В основном цикле программы у Вас идёт запуск преобразования, считывание, разбивка на диапазоны и потом моргание. Первое что бросилось в глаза - после цикла while (l<b){} нет никакой паузы которая позволила-бы визуально отделить один процесс считывания показаний ацп с морганием от другого. Второе - ИМХО просто ужасный код взятый из примера. Когда сам разбирался с ацп в пример конечно заглядывал, но код доводил до более или менее вменяемого вида. Получилось вот что: #ifndef adc_H #define adc_H #define ADCCLK 100000 #define ADCPRESCAL ((BOARD_MCK/(ADCCLK*2))-1) #define VREF 3060 //mV #define DELITEL_ADC 17 //(8.5*2) //коэф деления входного делителя #define DELITEL_PSV 26 //(13*2) //коэф деления входного делителя #endif //adc_H /*****************************************************/ //запуск преобразования АЦП __thumb void ADCStartConvertion(void) { AT91C_BASE_ADC->ADC_CR = AT91C_ADC_START; } /*****************************************************/ /*****************************************************/ //конфигурирование АЦП __thumb void ConfigureADC(void) { //запуск software, 10 бит, sleep mode, прескалер на 100 кГц AT91C_BASE_ADC->ADC_MR = (ADCPRESCAL<<6)|AT91C_ADC_SLEEP_MODE; //разрешаем каналы 4,5,6,7 AT91C_BASE_ADC->ADC_CHER = AT91C_ADC_CH7|AT91C_ADC_CH6|AT91C_ADC_CH5|AT91C_ADC_CH4; //запускаем первое преобразование AT91C_BASE_ADC->ADC_CR = AT91C_ADC_START; } /*****************************************************/ /*****************************************************/ //чтение канала АЦП __thumb unsigned int ADCRead(unsigned int ch) { unsigned int res=0; unsigned int delitel; switch(ch) { case 0: res = AT91C_BASE_ADC->ADC_CDR6; delitel = DELITEL_ADC; break; case 1: res = AT91C_BASE_ADC->ADC_CDR5; delitel = DELITEL_ADC; break; case 2: res = AT91C_BASE_ADC->ADC_CDR4; delitel = DELITEL_ADC; break; case 3: res = AT91C_BASE_ADC->ADC_CDR7; delitel = DELITEL_PSV; break; } //переводим показания ацп в мВ return (res*VREF*delitel)>>11; } /*****************************************************/ Подключите 2 файла к проекту. Напишите в код снизу и больше ничего не надо!!! void main(void) { ConfigureADC(); unsigned int adc_res; while(1) { ADCStartConvertion(); pause(); //тут подождать немного на преобразование adc_res = ADCRead(0); //тут манипуляции с морганиями pause(); //тут пауза чтобы отделить один процесс моргания от другого } } Изменено 4 сентября, 2011 пользователем mempfis_ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться