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

 
 
> SAM4S, Ничего не выходит
Грендайзер
сообщение Oct 14 2014, 18:01
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 368
Регистрация: 18-04-11
Из: Город-герой Москва
Пользователь №: 64 451



Здравствуйте всем! Попала в руки отлпдочная плата SAM4S-EK2 на базе контроллера ATSAM4SD32C. Ранее никогда не работал ни с ARM ни с Cortex ну и встрял. Немного работал с AVR так там всё элементарно... Надо что то - посмотрел в даташите необходимый регистр, записал в него что нужно и всё... А здесь.. смотрел в даташит, так там как будто Лев Толстой приложился столько букв sad.gif И хоть убей, не вижу как элементарно вывести единичку в порт?

Сообщение отредактировал Грендайзер - Oct 14 2014, 18:08
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Грендайзер
сообщение Aug 5 2015, 12:40
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 368
Регистрация: 18-04-11
Из: Город-герой Москва
Пользователь №: 64 451



прошу прощения за ошибки допущенные при копировании. вот поправленный вариант
CODE
#include "sam.h"

int din = 0;
int dout = 0;
int dacc_in = 0;
int din_1 = 0;
volatile int flag = 0;

int main(void)
{

SystemInit();
//--------------- Enable Global Interrupts -----------------------------
__enable_irq ();

//--------------- Enable Interrupts in NVIC ----------------------------
NVIC_EnableIRQ(DACC_IRQn);
NVIC_EnableIRQ(ADC_IRQn);

NVIC_SetPriority (DACC_IRQn, 2);

while (1)
{
switch(flag)
{
case 0:// если прерывание от АЦП не произошло, моргать светодиодами
{
{PIOA -> PIO_CODR = PIO_CODR_P19 | PIO_CODR_P20;}
for (int i = 0; i < 1000000; i ++){}
{PIOA -> PIO_SODR = PIO_SODR_P19 | PIO_SODR_P20;}
for (int i = 0; i < 1000000; i ++){}
break;
}
case 1: // Если прерывание от АЦП было - гнать данные через ФВЧ
{
dacc_in = dout + din - din_1;
dout = dacc_in * 0.9 + 600;
din_1 = din;
flag = 0;
break;
}
default : {break;}
}
}
return 0;
}

\\ Подпрограммы прерываний
\\------------ АЦП----------------
void ADC_Handler( void )
{
volatile int IRQ_sense = 0;
IRQ_sense = ADC -> ADC_ISR & (ADC_IER_EOCAL | ADC_IER_EOC5);

switch(IRQ_sense)
{
case ADC_IER_EOCAL : // автокалибровка АЦП
{
{PIOA -> PIO_CODR = PIO_CODR_P19 | PIO_CODR_P20;}
{PIOA -> PIO_SODR = PIO_SODR_P19 | PIO_SODR_P20;}
ADC -> ADC_IER = ADC_IER_EOC5;
ADC -> ADC_CR = ADC_CR_START;
return;
}

case ADC_IER_EOC5 :
{
flag = 1; // Говорим что было прерывание от АЦП
din = ADC -> ADC_CDR[5] & ADC_CDR_DATA_Msk;
ADC -> ADC_CR = ADC_CR_START;
return;
}

default : {return;}
}
}

//-------------------------- ЦАП --------------------------------
void DACC_Handler( void )
{
volatile int IRQ_sense = 0;
IRQ_sense = DACC -> DACC_ISR;
DACC -> DACC_CDR = DACC_CDR_DATA(dout);
return;

}

P.S.
Процесс настройки переферии указывать не стал

Сообщение отредактировал IgorKossak - Aug 5 2015, 19:37
Причина редактирования: [codebox] для длинного кода, [code] - для короткого!
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Грендайзер   SAM4S   Oct 14 2014, 18:01
- - Genadi Zawidowski   Вот посмотрите... Разберетесь? CODEvoid arm_hardw...   Oct 14 2014, 18:26
- - Leopoldius   Все зависит от того чем Вы предпочитаете пользоват...   Oct 14 2014, 18:29
- - Golikov A.   А еще надо не путать даташит и рефернс мануал. В о...   Oct 14 2014, 19:04
- - Leopoldius   О да, особенно СТМ этим страдает. У АТМЕЛ в этом п...   Oct 14 2014, 19:09
- - Грендайзер   ЦитатаВот посмотрите... Разберетесь? Честно говоря...   Oct 14 2014, 19:15
|- - Leopoldius   Цитата(Грендайзер @ Oct 14 2014, 22:15) А...   Oct 14 2014, 19:23
- - Грендайзер   ЦитатаЕсли есть опыт работы с другими МК, то я бы ...   Oct 14 2014, 19:52
- - Golikov A.   В АРМах не принято порты буквами называть. И на са...   Oct 15 2014, 05:15
- - Грендайзер   Нашёл в студии заголовочник "sam4sd32c.h...   Oct 15 2014, 06:49
|- - DmitryM   Цитата(Грендайзер @ Oct 15 2014, 10:01) Н...   Oct 15 2014, 06:52
|- - KnightIgor   Цитата(Грендайзер @ Oct 15 2014, 08:49) Н...   Oct 15 2014, 09:46
- - Golikov A.   обычно хорошим тоном бывает давать в заголовочном ...   Oct 15 2014, 08:14
- - Грендайзер   Фух, запустил внутренний "медленный" ква...   Oct 15 2014, 11:55
|- - KnightIgor   Цитата(Грендайзер @ Oct 15 2014, 13:55) K...   Oct 15 2014, 13:03
- - Leopoldius   По поводу студии и почему не работает PORTB в ваше...   Oct 15 2014, 12:17
- - Golikov A.   а я бы сказал что так делать не надо, по описанной...   Oct 15 2014, 12:50
|- - Leopoldius   Цитата(Golikov A. @ Oct 15 2014, 15:50) а...   Oct 15 2014, 13:00
- - Грендайзер   ЦитатаЭто самый короткий, прямой путь без сюрпризо...   Oct 15 2014, 13:39
- - Golikov A.   Правда как всегда по середине. Я всегда за то что...   Oct 15 2014, 14:17
- - Грендайзер   Здравствуйте! Продолжаю мучить ATSAM4S32C. Дош...   Jul 29 2015, 09:54
- - Obam   Формально да (но попробовать не запрещено), ЦАП бы...   Jul 29 2015, 10:13
- - Грендайзер   Всё ясно, спасибо. Хотя всёравно как то печально   Jul 29 2015, 10:17
- - Грендайзер   Всем доброго времени суток. Опять столкнулся с про...   Aug 5 2015, 10:10
- - Obam   Не грех посмотреть в сгенерённый код: куда dout та...   Aug 5 2015, 11:04
- - Грендайзер   ЦитатаНе грех посмотреть в сгенерённый код: куда d...   Aug 5 2015, 11:56
- - scifi   У вас шнурки развязались не код, а полный бардак. ...   Aug 5 2015, 12:13
|- - DmitryM   Цитата(Грендайзер @ Aug 5 2015, 16:40) пр...   Aug 5 2015, 13:43
- - Golikov A.   int din = 0; int dout = 0; вот это под volatile ...   Aug 5 2015, 12:55
- - Грендайзер   Цитатакакая там у вас битность ЦАП? не переполнитс...   Aug 5 2015, 13:14
|- - scifi   Цитата(Грендайзер @ Aug 5 2015, 16:14) И ...   Aug 5 2015, 13:30
- - RabidRabbit   А прерывания от АЦП с какой частотой следуют? Не т...   Aug 5 2015, 13:14
- - Golikov A.   возникло прерывание, а дальше? флаг наличия прерыв...   Aug 5 2015, 13:28
- - Грендайзер   RabidRabbit, а не всё ли равно, с какой частотой с...   Aug 5 2015, 14:46
|- - scifi   Цитата(Грендайзер @ Aug 5 2015, 17:46) Ла...   Aug 5 2015, 15:57
- - Грендайзер   ЦитатаИ ещё один вопрос: при этом у процессора воо...   Aug 5 2015, 17:08
|- - scifi   Цитата(Грендайзер @ Aug 5 2015, 20:08) Ск...   Aug 5 2015, 17:32
- - Грендайзер   ЦитатаПредставьте, что одна итерация "мигания...   Aug 5 2015, 18:01
|- - scifi   Цитата(Грендайзер @ Aug 5 2015, 21:01) Не...   Aug 5 2015, 18:04
- - Грендайзер   да... это до меня дошло... завтра попробую ещё раз...   Aug 5 2015, 19:01
- - Golikov A.   вам не кейз надо делать, потому что попав в одно с...   Aug 5 2015, 19:06
- - Грендайзер   Снова здравствуйте. Вообщем промучился ещё день но...   Aug 7 2015, 12:13
- - zltigo   Это не проблема ARM, а проблема того, что сие ника...   Aug 7 2015, 12:35
- - scifi   +100500, пила там точно не получится. Для начала н...   Aug 7 2015, 12:43
- - Грендайзер   Ну началось... Бог с ней с пилой... Мне не важно, ...   Aug 7 2015, 13:20
|- - zltigo   QUOTE (Грендайзер @ Aug 7 2015, 16:20) а ...   Aug 7 2015, 13:31
- - Грендайзер   ЦитатаВы свое 'n' и 'dout' как-бы ...   Aug 7 2015, 13:39
|- - scifi   Цитата(Грендайзер @ Aug 7 2015, 16:39) Ча...   Aug 7 2015, 13:45
|- - zltigo   QUOTE (Грендайзер @ Aug 7 2015, 16:39) Ча...   Aug 7 2015, 13:51
|- - RabidRabbit   Цитата(Грендайзер @ Aug 7 2015, 16:39) Ча...   Aug 10 2015, 06:25
- - Грендайзер   ЦитатаНу тогда так: не забыли приписать volatile к...   Aug 7 2015, 13:47
|- - scifi   Цитата(Грендайзер @ Aug 7 2015, 16:47) Не...   Aug 7 2015, 13:51
|- - zltigo   QUOTE (Грендайзер @ Aug 7 2015, 16:47) Не...   Aug 7 2015, 13:55
- - scifi   Кстати, а что надо-то? А то пока что и пила, котор...   Aug 7 2015, 13:58
- - Грендайзер   ЦитатаЧто на выходе получиться должно-то? Должно п...   Aug 7 2015, 14:11
|- - scifi   Цитата(Грендайзер @ Aug 7 2015, 17:11) Та...   Aug 7 2015, 14:14
- - Грендайзер   ЦитатаЛегко. Запретить прерывания на время проверк...   Aug 7 2015, 14:20
|- - scifi   Цитата(Грендайзер @ Aug 7 2015, 17:20) Пр...   Aug 7 2015, 15:46
- - Грендайзер   Имею некоторый негативный опыт запихивания изрядно...   Aug 7 2015, 17:18
|- - scifi   Цитата(Грендайзер @ Aug 7 2015, 20:18) Им...   Aug 7 2015, 19:22
- - Грендайзер   ЦитатаПардон, но вам до такого понимания как пешко...   Aug 10 2015, 05:51
- - Грендайзер   Вылезает. При выходе из прерывания, я его отключаю...   Aug 10 2015, 07:14
- - Грендайзер   Ну сейчас меня с гавн съедят, и всё же... Товарищ ...   Aug 11 2015, 11:38


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

 


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


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