Jump to content
kentawrik

Target Board 78f1146 И Qb-mini2

Recommended Posts

Приобрел QB-MINI2 и сделал сам платку типа таргетбоард на 1146. Плата прилагается

post-45024-1218429386_thumb.jpg

Kit.rar

встала необходимость просмотреть время выполнения определенной процедуры.

void fill()

{

for( i = 0; i < 3; i++)

{

for( j = 0; j< 3072;j++)

{

buffer[j]='2';

}

}

}

инициализация:

void init_hard()

{

// инициализация тактовых частот

OSMC = 0x01; // xxxxxxx0

// +---- (FSEL) частота для памяти: 1 - выше 10 МГЦ / 0 - ниже 10 Мгц(экономия питания)

OSTS = 0x07; // xxxxx000

// +++---- время стабилизации (OSTS2, OSTS1, OSTS0)

// 000 - 2^8/fx

// 001 - 2^9/fx

// 010 - 2^10/fx

// 011 - 2^11/fx

// 100 - 2^13/fx

// 101 - 2^15/fx

// 110 - 2^17/fx

// 111 - 2^18/fx

CMC = 0x51; // 00x0xxx0

// || | +---- (AMPH) частота: 0 от 2 до 10 МГц / 1 - от 10 до 20 МГц

// || +-------- (OSCSELS) XT1,2: 0 - порт, 1 - кристалл

// |+---------- (OSCSEL) X1: 0 - порт / 1 вход(ы) генератора

// +----------- (EXCLK) генератор 0 - внутренний / 1 - внешний вход

CKC = 0x08; // 00001000

// |||||||+----(MDIV0):

// ||||||+-----(MDIV1):

// |||||+------(MDIV2):

// ||||+------- всегда 1

// |||+--------(MCM0) источник для fclk: 0 - fih / 1 - fmx

// ||+---------(MCS) (т.чтение) статус fmain: 0 - fih / 1 - fmx

// |+----------(CSS) источник для fclk: 0 - зависит от MDIV и MCM0 / 1 - fsub/2

// +-----------(CLS) (т.чтение) статус fclk: 0 - fmain/ 1 - fsub

CSC = 0x00; // 00xxxxx0

// || +----(HIOSTOP) fhi внутренний генератор: 0 - запустить / 1 - остановить

// |+----------(XTSTOP) fsub: 0 - запустить / 1 - остановить

// +-----------(MSTOP) fmx внешний: 0 - запустить / 1 - остановить

while(OSTC < 0xFF) // ожидаем пока содержимое регистра достигнет значения в зависимости

{ // от OSTS (в битах отличается)

__no_operation();

}

// генераторы запустили и подождали

CKC = 0x18; // здесь установили источник для fclk на fmx

CSC = 0x01; // остановили внутренний генератор

PER0=0x81; // 0x0000x0

// | |||| +---- (TAUEN) подать тактовую частоту на массив таймеров

// | |||+------ (SAU0EN) подать тактовую частоту на массив 0 последовательных портов

// | ||+------- (SAU1EN) подать тактовую частоту на массив 1 последовательных портов

// | |+-------- (IIC0EN) подать тактовую частоту на IIC0

// | +--------- (ADCEN) подать тактовую частоту на АЦП

// +----------- (RTCEN) подать тактовую частоту на часы реального времени

// частоты проиницализировали и на устройства подали

// инициализация портов

}

запускаю через симулятор -

смотрю через Profiling (Code Coverage не работает на qb-mini2 поэтому использую этот плагин)

время выполнения заливки чуть больше 433000 тактов

запускаю через отладчик - время выполнения 22600000 тактов

исходя из ассемблерного кода и размера массива я больше склоняюсь к тому что отладчик брешет, а симулятор говорит правду.

А вот как заставить отладчик говорить правду - не пойму...

Может неправильно что настроил в IAR?

Share this post


Link to post
Share on other sites

Прошу прощения у модераторов но добавлю отдельным сообщением.

Да и еще у меня стоит как описано в даташите (в памяти при просмотре располагается как надо)

#pragma location = "OPTBYTE"

__root const unsigned char opbytes[4]={0x00,0xFF,0xFF,0x85};

хотя в CoolIt! стоит следующее (78F1166):

#pragma location = "OPTBYTE"

__root const unsigned char opbytes[3]={0x00,0xFF,0x85};

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

Share this post


Link to post
Share on other sites

В режиме отладки, когда идет работа с OCD естественно время выполнения будет больше.

Правда не на порядок.

Уточним, посмотрим

Share this post


Link to post
Share on other sites

Литиевые батарейки Fanso для систем телеметрии и дистанционного контроля

Системы телеметрии находят все более широкое применение во многих отраслях на промышленных и коммунальных объектах. Требования, предъявляемые к условиям эксплуатации приборов телеметрии и, как следствие, источников питания для них, могут быть довольно жесткими. Fanso предоставляет широкую линейку продукции, рассчитанной на различные условия эксплуатации, что позволяет подобрать батарейку для каждого конкретного применения, в том числе и для устройств телеметрии.

Подробнее

прошу прощения - панику поднял...

в настройках оборудования к отладчику - есть пункт Time Unit.

он как раз и задает величины по которым отсчитывается время.

так вот для симулятора считаются циклы, а для OCD выводится время в величинах которые мы установили...

у меня стояли наносекунды значит время выполнения процедуры fill в тактах 433233, а по времени 22600000 нс или 22,6 мс (миллисекунды).

все это даже лучше чем я ожидал...

:unsure:

Share this post


Link to post
Share on other sites
                     

Приглашаем на вебинар Решения для построения ультразвуковых счетчиков жидкостей и газов на базе MSP430

Компэл совместно с Texas Instruments 23 октября 2019 приглашают на вебинар, посвященный системам-на-кристалле для построения ультразвуковых расходомеров жидкостей и газов на базе ядра MSP430. Вебинар проводит Йоханн Ципперер – эксперт по ультразвуковым технологиям, непосредственно участвовавший в создании данного решения. На вебинаре компания Texas Instruments представит однокристальное решение, позволяющее создавать точные недорогие счетчики жидкостей и газов.

Подробнее...

Вообще следовало ожидать.

В этом процессоре есть конвеер, и однозначно сказать что столько-то команд=столько-то тактов не всегда можно.

В сложно-запутанной программе с кучей переходов, когда конвеер не работает, что-то подсчитать можно.

Share this post


Link to post
Share on other sites

так а как опытный человек что скажите по поводу OPTION?

почему такая разница?

Share this post


Link to post
Share on other sites

Вечером гляну в даташит.

Там должно быть побитовое описание.

Возможно что различающиеся биты в твоей программе не затрагиваются.

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.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  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.

Loading...

  • Сообщения

    • Да, но когда уже выбран/оптимизирован выходной каскад. В том числе после выбора Ra. И, как правильно отметил Василичь, А я уточнил по поводу выбора режимов в тетродном и триодном выходных каскадах. И это никак не относится к резистору в драйвере. Ни в коем случае! Просто надо использовать любой подходящий трансформатор. Хоть обычный силовой на 12 В. Только зазор в магнитопровод ввести. Завал АЧХ такого трансформатора на частоте 20 кГц никак не скажется на измерение выходной мощности на 1 кГц.
    • Сломался мультиметр DT9208A при странных обстоятельствах, помогите найти причину, если это возможно. Вообщем в один прекрасный день проводил измерения прибор стоял на измерение постоянного напряжения 20В, прибор запитывался от самодельного повер банка на 18650 и повышающем преобразователи (уже не в первый раз) все было нормально, затем после измерений не выключая мультик я бросил щупы в сторону питающего его повербанка и не понял что произошло но на момент на повербанке вольтметр показал ноли а потом питание возобновилось но прибор ничего не показывает горит светодиод и все. Что произошло толи измерительный щуп попал на плюсовой контакт питания повер банка который его же и питает??? Что может с ним быть ??? Подключил к лабораторному БП потребление нет, ничего не греется, подгоревшего ничего нет .
    • WeatherLink ISOLATOR. По сути удлинитель-изолятор интерфейса RS232. Расстояние до 12м.  Насчет скорости не скажу, станция работала на 9600. 1000р  
    • Гугель в помоЩЩь. Не он? Может два транзистора добавлены в стабилизатор или еще куда. Сравнивайте схему.  
    • ATMEGA324PA это если надо 20МГц как у Пика, а так любой из Ардуинки, но опять же, смотря какая задача стоит, а не просто замена, там и разводка другая и своя прошивка.   А если надо прям почти почти то AT89S4051.
    • Какая то жуткая история - что то хрюкает, что то тихонечко играет назло... Всё, что можно посоветовать - найти настоящего мастера, пусть он будет и незнакомый, лишь бы соображал... а вот самому лучше туда не лезть.
    • Здравствуйте, схему нет, есть два готовых устройства одно которое уже управляет двигателем за счёт изменения входного напряжения на управляющий контакт в пределах от 1.81 до 1.73 ,выполнено на микросхеме tl594c и второе устройство с ЛСД дисплеем отображающие частоту вращения кулера и с функцией сигнализации при достижении запрограммированной температуры при достижении которой открывается полевой транзистор. Вот эти два устройства соединить так чтобы на управляющий контакт  первого устройства приходило 1.81 вольт что можно обеспечить делителем напряжения , потом при достижении запрограммированной температуры сработает второе устройство откроется полевой транзистор и пропустит через себя напряжения  которое изменит напряжения 1.81 вольт на входе первого устройства на 1.73 вольта, вот описания схемы как это можно организовать? Помогите пожалуйста!
  • Покупай!

×
×
  • Create New...