Jump to content

    
Sign in to follow this  
Rem5

Вопрос по F2812

Recommended Posts

Вопрос в следующем . Взялся за разработку некоего устройства на данном проце. Технической документации прочитал достаточно. Но вот не знаю с какого боку подступиться с точки зрения программирования. Хотелось бы понять основные принципы построения программ для данных контроллеров.

Share this post


Link to post
Share on other sites
Вопрос в следующем . Взялся за разработку некоего устройства на данном проце. Технической документации прочитал достаточно. Но вот не знаю с какого боку подступиться с точки зрения программирования. Хотелось бы понять основные принципы построения программ для данных контроллеров.

???......?

По большому счету технология программирования DSP мало чем отличается от программирования стандартных микроконтроллеров.

По подробней пожалуйста. Сформулируйте свою задачу технически грамотно...

Не понятно причем тут проц. и принципы программирования. Проц - железо, на котором реализуется hardware проекта, а программная реализация (на чем вы будете выражать свои мысли asm, С/С++) это его 'мозг' - способность Вашего абстрактного и логического мышления.

Если Вам надо теоретически изучить программирование читайте Дональд Кнут "Искусство Программирования" (3-и тома).

Share this post


Link to post
Share on other sites

Ещё один вопрос. У меня временно стоит 90 дневная Trial Version CCS. В ней прерывания например от таймеров вообще можно откатать?

Share this post


Link to post
Share on other sites

в моем cfg файле есть такая строка

cssi_modules pie, timer0, timer1, timer2;

это значит, что симулятор поддерживает таймеры

все остальное не поддерживается

Share this post


Link to post
Share on other sites

2 andr2000

а имя файла не подскажете?

 

2 andr2000

Прошу прощения, нашёл cssi_modules pie, timer0, timer1, timer2. Но не как не могу отсмотреть переход в обработчик прерывания по timer0. Прога тестовая с ti.com скачанная. Флаги необходимые вроде стоят все . Но по переполнению прерывания не происходит . Не понятно почему.

Share this post


Link to post
Share on other sites

файл называется sim2810.cfg

не забудьте его добавить в конфигурацию симулятора:)

 

вот мой модуль для работы с таймером - может поможет

 

interrupt void TIMEOUT_IntHandlerTimer(void)

{

CpuTimer0Regs.TCR.bit.TIF=0;

//Acknowledge this interrupt to receive more interrupts from group 1

PieCtrlRegs.PIEACK.all|=PIEACK_GROUP1;

//enable nested interrupts

EINT;

//logic

LOGIC_TimerHandler();

//LED's

LED_TimerHandler();

}

 

void TIMEOUT_Init(void)

{

TDWord temp;

 

//setup interrupt vector table

EALLOW;

PieVectTable.TINT0=&TIMEOUT_IntHandlerTimer;

EDIS;

//Initialize timer period:

temp=(TDWord)((XTAL/1000000.0)*(PV_DSP_TIMEOUT_TICK_WEIGHT_MS*1000.0));

CpuTimer0Regs.PRD.all=temp;

//Initialize pre-scale counter to divide by 1 (SYSCLKOUT):

CpuTimer0Regs.TPR.all=0;

CpuTimer0Regs.TPRH.all=0;

//Make sure timer is stopped:

CpuTimer0Regs.TCR.bit.TSS=1;

//Reload all counter register with period value:

CpuTimer0Regs.TCR.bit.TRB=1;

//Initialize timer control register:

CpuTimer0Regs.TCR.bit.SOFT = 1;

//Timer Free Run

CpuTimer0Regs.TCR.bit.FREE=1;

//0 = Disable/1 = Enable Timer Interrupt

CpuTimer0Regs.TCR.bit.TIE=1;

//start the timer

CpuTimer0Regs.TCR.bit.TSS=0;

//enable interrupt

IER|=M_INT1;

//Enable TINT0 in the PIE: Group 1 interrupt 7

PieCtrlRegs.PIEIER1.bit.INTx7=1;

}

Share this post


Link to post
Share on other sites

2 andr 2000

В конфигураторе CCS он уже подключен. Посмотрел код, вообщем

то мой ничем не отличается. Там вообще по моему работа с таймерами без особых изысков. Наверное всё таки версия симулятора...... bad.

Share this post


Link to post
Share on other sites

возможно:) мне хватило того что есть

для написания полного проекта без

эмуляторов - при помощи загрузчика по SCI

и светодиода:)

так что если чем могу - помогу:)

правда тут и без меня целое стадо гуру:)

Share this post


Link to post
Share on other sites

2 andr 2000

У Вас в тексте есть такая строка

PieVectTable.TINT0=&TIMEOUT_IntHandlerTimer;

Он в симуляторе фактически переходил к процедуре обработки

TIMEOUT_IntHandlerTimer? У меня таймер просто обнуляется , далее презагружается значением из CpuTimer0Regs.PRD и продолжает считать дальше. По логике вещей он хотя бы IFR флаг установить должен был. Но он и этого не делает. А просто продолжает считать дальше. Ещё один bug: поскольку в симуляторе (cssi_modules pie, timer0, timer1, timer2;) прописано что работает PIE то возможен откат также прерываний от ADC, так как этот источник находится в одной групп PIE, но там прерывания тоже не срабатывают.

Share this post


Link to post
Share on other sites

Тогда я не понимаю как можно логику событий откатать. Этот симулятор что тёмный ящик? Я когда с AVR studio работал всё было проще. Например через определённое время после запуска АЦП происходило прерывание. Я просто вручную заталкивал в регистры результата определённые значения. И дальше можно было просто отследить логику работы программы. То же самое можно было делать с UARTом и т.д. . А тут получается камень для этого нужен. странно как - кто...

Share this post


Link to post
Share on other sites

мне так тоже вначале показалось, но потом я подумал

что людей, которые пытаются писать программы в симуляторе

под данную платформу, скорее всего, не так уж и много:(

так что поддерживать симулятор желания у народа похоже нет

логику своей программы я откатывал по кусочкам, обработчики

прерываний заменял обычными функциями и смотрел как

они выполняются. потом все это заливал по sci и смотрел как

работает уже в железе. так что...

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this