Rem5 0 28 ноября, 2005 Опубликовано 28 ноября, 2005 · Жалоба Вопрос в следующем . Взялся за разработку некоего устройства на данном проце. Технической документации прочитал достаточно. Но вот не знаю с какого боку подступиться с точки зрения программирования. Хотелось бы понять основные принципы построения программ для данных контроллеров. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
BVU 0 28 ноября, 2005 Опубликовано 28 ноября, 2005 · Жалоба Вопрос в следующем . Взялся за разработку некоего устройства на данном проце. Технической документации прочитал достаточно. Но вот не знаю с какого боку подступиться с точки зрения программирования. Хотелось бы понять основные принципы построения программ для данных контроллеров. ???......? По большому счету технология программирования DSP мало чем отличается от программирования стандартных микроконтроллеров. По подробней пожалуйста. Сформулируйте свою задачу технически грамотно... Не понятно причем тут проц. и принципы программирования. Проц - железо, на котором реализуется hardware проекта, а программная реализация (на чем вы будете выражать свои мысли asm, С/С++) это его 'мозг' - способность Вашего абстрактного и логического мышления. Если Вам надо теоретически изучить программирование читайте Дональд Кнут "Искусство Программирования" (3-и тома). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dr.NoA 0 28 ноября, 2005 Опубликовано 28 ноября, 2005 · Жалоба Советую скачать примеры программ для C28, они свободно доступны на сайте TI. Очень поможет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Rem5 0 1 декабря, 2005 Опубликовано 1 декабря, 2005 · Жалоба Ещё один вопрос. У меня временно стоит 90 дневная Trial Version CCS. В ней прерывания например от таймеров вообще можно откатать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andr2000 0 1 декабря, 2005 Опубликовано 1 декабря, 2005 · Жалоба в моем cfg файле есть такая строка cssi_modules pie, timer0, timer1, timer2; это значит, что симулятор поддерживает таймеры все остальное не поддерживается Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Rem5 0 1 декабря, 2005 Опубликовано 1 декабря, 2005 · Жалоба 2 andr2000 а имя файла не подскажете? 2 andr2000 Прошу прощения, нашёл cssi_modules pie, timer0, timer1, timer2. Но не как не могу отсмотреть переход в обработчик прерывания по timer0. Прога тестовая с ti.com скачанная. Флаги необходимые вроде стоят все . Но по переполнению прерывания не происходит . Не понятно почему. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andr2000 0 2 декабря, 2005 Опубликовано 2 декабря, 2005 · Жалоба файл называется 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; } Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Rem5 0 2 декабря, 2005 Опубликовано 2 декабря, 2005 · Жалоба 2 andr 2000 За фрагмент спасибо. я так полагаю что файл должен быть sim2812.cfg разве не так? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andr2000 0 2 декабря, 2005 Опубликовано 2 декабря, 2005 · Жалоба да, я просто под 2810 писал:) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Rem5 0 2 декабря, 2005 Опубликовано 2 декабря, 2005 · Жалоба 2 andr 2000 В конфигураторе CCS он уже подключен. Посмотрел код, вообщем то мой ничем не отличается. Там вообще по моему работа с таймерами без особых изысков. Наверное всё таки версия симулятора...... bad. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andr2000 0 2 декабря, 2005 Опубликовано 2 декабря, 2005 · Жалоба возможно:) мне хватило того что есть для написания полного проекта без эмуляторов - при помощи загрузчика по SCI и светодиода:) так что если чем могу - помогу:) правда тут и без меня целое стадо гуру:) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Rem5 0 5 декабря, 2005 Опубликовано 5 декабря, 2005 · Жалоба 2 andr 2000 У Вас в тексте есть такая строка PieVectTable.TINT0=&TIMEOUT_IntHandlerTimer; Он в симуляторе фактически переходил к процедуре обработки TIMEOUT_IntHandlerTimer? У меня таймер просто обнуляется , далее презагружается значением из CpuTimer0Regs.PRD и продолжает считать дальше. По логике вещей он хотя бы IFR флаг установить должен был. Но он и этого не делает. А просто продолжает считать дальше. Ещё один bug: поскольку в симуляторе (cssi_modules pie, timer0, timer1, timer2;) прописано что работает PIE то возможен откат также прерываний от ADC, так как этот источник находится в одной групп PIE, но там прерывания тоже не срабатывают. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andr2000 0 5 декабря, 2005 Опубликовано 5 декабря, 2005 · Жалоба только что попробовал - в симуляторе не переходит:( но в железе точно работает. а насчет АЦП - очень сильно сомневаюсь Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Rem5 0 6 декабря, 2005 Опубликовано 6 декабря, 2005 · Жалоба Тогда я не понимаю как можно логику событий откатать. Этот симулятор что тёмный ящик? Я когда с AVR studio работал всё было проще. Например через определённое время после запуска АЦП происходило прерывание. Я просто вручную заталкивал в регистры результата определённые значения. И дальше можно было просто отследить логику работы программы. То же самое можно было делать с UARTом и т.д. . А тут получается камень для этого нужен. странно как - кто... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andr2000 0 6 декабря, 2005 Опубликовано 6 декабря, 2005 · Жалоба мне так тоже вначале показалось, но потом я подумал что людей, которые пытаются писать программы в симуляторе под данную платформу, скорее всего, не так уж и много:( так что поддерживать симулятор желания у народа похоже нет логику своей программы я откатывал по кусочкам, обработчики прерываний заменял обычными функциями и смотрел как они выполняются. потом все это заливал по sci и смотрел как работает уже в железе. так что... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться