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

Bill

Участник
  • Постов

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

  • Посещение

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


  1. Попробуйте так // Timer 0 overflow interrupt service routine interrupt [TIM0_OVF] void timer0_ovf_isr(void) { char _tmp; // Reinitialize Timer 0 value TCNT0=256-39+4; //PWM----------------------- _tmp = ++pwr_cnt; if (red_a > _tmp) { PORTD.7=1;} else {PORTD.7=0;}; if (green_a > _tmp) {PORTD.6=1;} else {PORTD.6=0;}; if (blue_a > _tmp) {PORTD.5=1;} else {PORTD.5=0;}; }
  2. Ну так посмотрите скрипт линкера и отредактируйте в нем размер секции. Или нет?
  3. Совсем нет. Когда Вирт придумал Паскаль и стал его использовать в своей преподавательской деятельности, для языка и компилятора не существовало. Компилятор с Паскаля появился позже, когда возникла необходимость в реально работающих программах. Если говорить о целях, то Паскаль являлся сильно типизированным языком, со строгой проверкой типов. Это позволяло избегать двусмысленностей в конструкциях. Си же напротив, многое возлагал на самих программистов, изначально в Си отсутствовала проверка типов. При этом многие конструкции языка были ориентированы на упрощение кодирования и генерирования более эффективного кода. PS: Интересно отметить, что первый компилятор с Паскаля появился на "больших" машинах типа CDC и IBM. А первый компилятор с Си был написан для мини-ЭВМ типа Interdata, PDP. Это тоже о многом говорит.
  4. А как данный код соотносится с выделением бита? Кстати, оператор shl в стандартном Паскале вообще отсутствовал.
  5. Ну, во-первых, Си придумали тоже отнюдь не дилетанты. Во-вторых, Паскаль и Си появились примерно в одно и то же время. И в-третьих, цели создания языков были разные. Если Паскаль был создан в целях обучения программированию, то Си - для упрощения создания системного программного обеспечения (ОС, компиляторов и т.д. и т.п.). Наконец, создатели обоих языков являлись профессионалами в своих областях. У каждого из языков есть свои достоинства и свои недостатки. Так что спорить тут не о чем. Или нет?
  6. Посмотрите на входы у толерантной логики 74lvc
  7. Методы адресации - это один из трех китов, на которых держится архитектура любого процессора (AVR в том числе). Так что стоит затратить время, чтобы разобраться с адресацией. В дальнейшем эти знания скорее всего вам понадобятся. Что касается семейства AVR, то советую внимательнее почитать сей документ Система команд AVR
  8. Вы, конечно, правы. Я и сам так поступаю в тех случаях, кода нужно быстро проверить LED. Уменьшаю напряжение до 0, потом подключаю светодиод и затем плавно увеличиваю напряжение на диоде до определенных значений. При этом еще желательно контролировать ток через диод. Только здесь есть определенный риск выжечь диод, что иногда бывало. В рабочей схеме, разумеется, я включаю LED через токоограничивающие резисторы. Надежность работы должна быть превыше всего. Или нет?
  9. В регистр ZL загружается содержимое ячейки памяти с адресом tmp. Если вы хотите загрузить в ZL адрес ячейки, используйте команду LDI. Все ваши проблемы возникают от того, что вы путаете различные методы адресации. В ассемблере AVR различные методы адресации определяются с помощью различных мнемоник. ldi r16, 5 ; Непосредственная (immediate) адресация - загрузка числа 5 lds r16, 5 ; Прямая (direct) адресация - загрузка в регистр r16 содержимого ячейки по адресу 5 ld r16, Z ; Косвенная (indirect) адресация - загрузка в регистр r16 через указатель Z ld r16, Z+ ; Автоинкрементная (post increment) адресация через указатель Z ld r16, Z- ; Автодекрементная (pre decrement) адресация через указатель Z ldd r16, z+5 ; Косвенная со смещением (inditect with displscement) адресация через указатель Z ; адрес ячейки памяти определяется как сумма содержимого указателя Z и числа 5 Надеюсь, что немного прояснил ситуацию. Или нет?
  10. Так и должно быть. В режиме debug по умолчанию выходной файл генерируется в другом формате. Дополнительно в него может включаться отладочная информация. Проверьте настройки проекта. Опять же, если вы используете для отладки ST-Link, зачем вам тогда режим debug нужен?
  11. Я тоже примерно так и делаю. Начинаю снизу - с программных модулей интерфейсов (АЦП, SPI, UART и т.д.). На этом этапе все хорошо укладывается и легко тестируется. Одновременно сверху пишу головную программу с ее бесконечным циклом, в который постепенно включаю функции среднего уровня. А вообще, перво-наперво я определяю структуры данных, с которыми будет работать программа, и описываю символические константы.
  12. Ну, например, можно сделать так #define D 100 #define K 11 #define Q D/K ... volatile int d = D; volatile int k = K; volatile int q = Q; ... Или нет?
  13. Все порты по отношению к 8085 являются внешними, их адреса задаются аппаратно в процессе проектировании устройства.
  14. STM8

    Project->Settings->Linker->Input->Vector file name. Выберите нужный вам файл. Все очень просто! Или нет?
  15. Ерунда какая! Учить можно на чем угодно! Главное, чтобы была соответствующая документация. И учат-то основам, а не конкретным МК, МП и т.п. И суть данного задания, скорее всего, в том, чтобы человек хотя бы ознакомился из чего состоит микрокомпьютерная система. А уж как она реализована - на кристалле или россыпью - дело десятое. Опять же, курсовые проекты, как правило, делаются чисто теоретически и для получения практических навыков их явно недостаточно. Другое дело, если бы преподаватель задал бы выполнения данного задания в "железе". Тогда и об использовании МК можно было бы подумать. И тут вовсе не обязательно PIC использовать, тем боле о 20 выводах. Или нет? PS: А то, что задание выдано как самостоятельное, вовсе не исключает обращений к преподавателю за консультациями.
  16. Ну так IAR его использует. Или нет?
  17. Вообще-то принято читать сначала руководство. Там на стр.196 описана опция --string_literals_in_flash
  18. Лично для меня главное сделать, и не жалеть о сделанном. Лишней работы, как и знаний не бывает. А ориентироваться нужно не на рынок труда, а на свои желания. Ибо все, что делается вопреки желаниям, через силу, рано или поздно достанет по самое нехочу. С другой стороны, научиться можно лишь тому, чему захочешь. Поэтому надо сначала понять, чему именно ты хочешь научиться.
  19. Такая возможность имеется, если использовать регистры, выделенные под глобальные переменные (__regvar).
  20. Проблемы с STM8

    Подробности см. мое первое сообщение. ST это не документировала, сказала что исправила.
  21. IAR+STM8

    IAR тут ни причем. Для доступа к указанным регистрам используется страничная адресация через регистр CAN_PSR. Подробности в документе 14587.
  22. Проблемы с STM8

    А причем тут soft? А кристаллы, говорят, уже исправили. Жду новых, исправленных.
  23. Проблемы с STM8

    Дело начинает проясняться. Ребята из "Промэлектроники" проделали такой же опыт с STM8S103K6 и получили аналогичный результат. После этого они обратились на фирму ST и там признали свой баг. Они его исправили, обещают прислать новые контроллеры.
  24. STM8

    STVD + Cosmic. Нажимаешь кнопочку Debug. После прошивки отладку останавливаешь и все!
×
×
  • Создать...