Перейти к содержанию
    

KARLSON

Свой
  • Постов

    641
  • Зарегистрирован

  • Посещение

Весь контент KARLSON


  1. Спосибо всем, особенно rezident. Возможно я поступил по Вашему, но через ассемблер. А именно Создаётся файл info.s43 public max_ust, min_ust, config, count_clear ASEG 0x1000 max_ust DB 25 min_ust DB 19 config DB 1 count_clear DB 0 end А до майна у меня вот что: extern signed char max_ust, min_ust, config; extern unsigned char count_clear; И никаких указателей и структур не надо. Хотя кому как удобно. И обращаемся к ним прямо по именам. Это при оптимизации медиум, при более сложных не проверю, т.к. уже многое не работает при этом)))
  2. IAR MSP430 оптимизатор кода

    Здравтсвуйте. Ситуация такая: Есть 3 переменные, которые необходимо разместить во FLASH памяти. #pragma memory = constseg(INFOD) // адреса 1000-103F const volatile signed char nst min_ust = 19, // 3 установленное по умолчанию отрицательное значение max_ust = 25, // 4 установленное по умолчанию положительное знание config = 1; Кстати, без слова "const" переменные во флеш не размещаются. Кто-нибудь знает почему? Эти переменные изменяются пользователем путём стирания и записывания флеш памяти. Значения меняются точно. Далее есть кусок кода: if ((DATA.temperatura > max_ust) || (DATA.temperatura < min_ust)) // если температура вышла из диаппазона { // делаем то-то } else // если норма { // делаем другое } Без оптимизации в настройках компилятора всё нормально, но стоит включить оптимизацию, то в условии в место max_ust и min_ust компилятор ставит 25 и 19 соответственно. Вся загвоздка скорее всего в ключевом слове const. Но без него переменные оказываются в оперативной памяти. Без оптимизации не могу, т.к. уже код не умещается в памяти контроллера. Как выйти из сложившейся ситуации?
  3. А почему цены для 2-х ПП? Одну нельзя или цена одна и таже? А объём относится к одной ПП или общий для двух? Если что, я за!
  4. Конденсаторы по питанию не помогли? По мне так проблема чисто аппаратная. Вы можете представить на суд схему? Если есть осциллограф посмотрите цепи питания и ресет при включении нагрузки. Развёртку поставьте в ждущем режиме.
  5. есть для P-CAD 149 и 21x2. Если надо, то лучше в личку написать.
  6. То что по питанию стоят ёмкости это я знаю. Я предложил увеличить их номинал не менее моего.
  7. MASP это опечатка))) MSP Меня смутило JTAG:8 -> MSP:59, если на этой линии джампер, то вытащите его. JTAG:8 должен быть пустой JTAG:2 -> MSP:7; может всё таки MSP:1? JTAG:9 -> MSP:10 если есть перемычка, также убирайте. Должно быть просто JTAG:9 -> GND. Должно быть GND -> MSP:63, MSP:62
  8. Получается по параметрам индуктивность, скорость, лучше сплошной полигон, а по короблению платы - сетка. (Не прав получается был препод). И где середина, что бы и там и там было хорошо?
  9. По Питанию микросхемы повесьте электролит/тантал 220 мкф и паралельно ему керамику микрофарад 10. А как у Вас цепь RESET сделана?
  10. Про то что у проводника в виде импульса меандра индуктивность меньше чем у прямолинейного в институте рассказывали. Про коробление кстати то же, совсем забыл.
  11. Работа с MSP430x2xx

    Это не ошибка! Это нормальные логичные результаты. А вот в случает if (UCB0STAT & (UCBBUSY + UCSCLLOW)) результат будет один и тот же. Просто кто как привык писать код.
  12. Работа с MSP430x2xx

    Но результат то один и тот же! restart при зависании шины заложена.
  13. О токах проходящих через каждую линию в сетке. Направление: имеется ввиду расположение проводников. С начала в одну сторону, затем под 90 градусов, соответственно взаимодействие полей нет.
  14. Работа с MSP430x2xx

    Рекомендацию я конечно же учту, но в чём разница результата операций "|" и "+"? PS А модуль USCI в режиме I2C + UART я всё таки укратил (пока ошибок не было). В понедельник проверю ещё раз и если всё в порядке приведу код. И ещё (типа слова к разработчикам контроллера), зря запихали они в один вектор прерывания и передачу по UART и приём/передача по I2C, а в другой приём по UART с битами состояния шины I2C. Векторов что ли жалко было?
  15. Я смотрю там джаммперы есть, так вот проверьте тестером следующие цепи: JTAG:1 -> MSP:54 JTAG:2 -> MSP:1 JTAG:3 -> MSP:55 JTAG:4 -> НИКУДА JTAG:5 -> MSP:56 JTAG:7 -> MSP:57 JTAG:9 -> GND JTAG:11 -> MSP:58 MSP:1 -> MASP:64 MSP:63 -> MASP:62 MSP:63 -> GND Остальные выводы у разьёма никуда.
  16. Кстати заливать лучше не сплошным, а сеткой. У сетки индуктивность общая меньше за счёт постоянного изменения направления тока.
  17. Работа с MSP430x2xx

    Здравствуйте. Скажите пожалуйста, а в каком случае устанавливается бит UCBBUSY в регистре UCB0STAT модуля USCI в режиме I2C. Дело вот в чём: В течении примерно часа происходит сбой на шине. Смотрю регистры и в каком месте произошёл сбой. Так вот, после успешного некоторого обмена с микросхемой слейвом, завершающийся операцией стоп, при следующем обмене происходит проверка занятости шины или то что SCL в нуле "if (UCB0STAT & (UCBBUSY + UCSCLLOW))". Мастер на шине только я (контроллер), смотрю на шину осциллографом, на шине SDA и SCL уровень логический 1. А бит UCBBUSY установлен в 1 (все остальные в регистре нули). Помогает только путём возведения и опускания бита UCSWRST в регистре UCB0CTL1. Кстати контроллер 430F2132
×
×
  • Создать...