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

Barmaley13

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

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

  • Посещение

Репутация

0 Обычный

Контакты

  • ICQ
    Array
  1. Большое спасибо! Вопрос решен. На Сях, вернее С++ - для PC. А контроллеры в основном программирую в асме.
  2. Проект на ATMega8. Имеем часть кода: CW=1; START_M; step_counter=0; while(step_counter<100) { wdt_reset(); } wdt_reset(); home(); sound(); Эта часть выполняется в основном теле программы. Переменная step_counter инкрементируется в прерывании Таймера1. Тупо нужно подождать, пока её значение не достигнет 100. С отключенной оптимизацией (-O0) как-бы все нормально: 93: CW=1; LDI R24,0x01 Load immediate LDI R25,0x00 Load immediate STS 0x0061,R25 Store direct to data space STS 0x0060,R24 Store direct to data space 94: START_M; LDI R24,0x4E Load immediate LDI R25,0x00 Load immediate LDI R18,0x0D Load immediate MOVW R30,R24 Copy register pair STD Z+0,R18 Store indirect with displacement 95: step_counter=0; STS 0x006B,R1 Store direct to data space STS 0x006A,R1 Store direct to data space 96: while(step_counter<1) RJMP PC+0x0002 Relative jump 98: wdt_reset(); WDR Watchdog reset 96: while(step_counter<1) LDS R24,0x006A Load direct from data space LDS R25,0x006B Load direct from data space SBIW R24,0x00 Subtract immediate from word BREQ PC-0x06 Branch if equal 100: wdt_reset(); WDR Watchdog reset 101: home(); RCALL PC+0x0286 Relative call subroutine 102: sound(); RCALL PC+0x03B5 Relative call subroutine +000000B2: E080 LDI R24,0x00 Load immediate +000000B3: E090 LDI R25,0x00 Load immediate +000000B4: E4A8 LDI R26,0x48 Load immediate А вот при включении опции оптимизации (-O1...Os) наблюдаем следующее: 93: CW=1; LDI R24,0x01 Load immediate LDI R25,0x00 Load immediate STS 0x0061,R25 Store direct to data space STS 0x0060,R24 Store direct to data space 94: START_M; LDI R24,0x0D Load immediate STD Z+0,R24 Store indirect with displacement 95: step_counter=0; STS 0x0063,R1 Store direct to data space STS 0x0062,R1 Store direct to data space 98: wdt_reset(); WDR Watchdog reset RJMP PC-0x0001 Relative jump 98: wdt_reset(); CLI Global Interrupt Disable RJMP PC-0x0000 Relative jump +0000018F: 0001 ??? Data or unknown opcode Далее пусто (0xFFFF). Контроллер увисает на сбросе пса. А остального кода как-бы и нету!!! И, как видно, переменная step_counter не проверяется. Проект не критичен, поэтому стал заморачиваться на С. Можно и без оптимизации. Но все-таки интересно, ГДЕ ЖЕ ОСТАЛЬНОЙ КОД??? Да, еще вот: avr-gcc -mmcu=atmega8 -Wall -gdwarf-2 -std=gnu99 -DF_CPU=4000000UL -O0 -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT UV.o -MF dep/UV.o.d -c ../UV.c
  3. Вот мой первый опыт металлизации. Для химического меднения использовал рецепт UA1CFM: Сернокислая медь - 15 г\л, Трилон Б - 25 г\л, Едкий натр - 14 г\л, Формалин технический - 10мл\л. Пропорции уменьшал на 100 мл. воды. Хлористое олово и соляная кислота - пропорции от фонаря. Чистоты особой и не было. Промывка - вода из под крана. Обезжиривал ацетоном. Текстолит советский, двухсторонний. С одной стороны фольгу снял полностью с одним слоем текстолита. Использовал нитрат серебра. Тоже самодельный. В нем было небольшое содержание нитрата меди (раствор слегка был голубоватого цвета). Раствор для меднения был не первой свежести (попробовал 2 образца, оставил его на ночь, а на следующий день поместил туда образец, что на фото). Опыт удался, результатом доволен. После гальваники слой довольно толстый. Держится на текстолите крепко, правда, сильно еще не грел. Гальваника: на 100 мл. воды 25 гр. купороса, 8 гр. серной кислоты 96%. Спирта 1-2 мл. - на глаз. 2 вольта от лабораторного блока питания. Ограничение тока - 200 мА. Вначале все это пыталось кушать много тока, потом потребление падало где-то до 130 мА в среднем. Оставлял на ночь. На первом фото диаметр отверстий 1,2 мм., чуть выше - 1 мм. На втором -0,8 мм. Извиняюсь за качество фото. Небыло приличной техники под руками.
  4. AVR и Siemens M55

    Выкладываю обещанный код на LCD Nokia 6300. Извиняюсь за задержку - был в командировке. Код написан на С. Будет время - перепишу на ассемблере. Ногами не пинайте - делал по-быстрому, из шаблона CVAVR. Сделал, включил - работает. Дальше им заниматься пока некогда. Дисплей подключен следующим образом: #define WRX PORTC.0 #define RDX PORTC.1 #define CSX PORTC.2 #define DCX PORTC.3 #define RESX PORTC.4 Контроллер работает на частоте 4 МГц, питание - 3,3 В. Еще на 2-х 1117 собрано 2 питания на дисплей. Подсветка по-колхозному - через резистор. LCD_Nokia.rar
  5. AVR и Siemens M55

    yarunt, от 6300 я запустил на Меге 128. Сложного ничего нет. Завтра или послезавтра приклею код и фото.
  6. AVR и Siemens M55

    Хочу вот на досуге попробовать 240х320 Нокиевский. N73 Вот тоже линк интересный... Дисплейные даташиты
  7. AVR и Siemens M55

    А в wma какой контроллер стоит? LPH8731 или L2F50? А может HM17CM4096?
  8. Начинал "стандартно": РК86, Спектрумы... Потом x51, PIC... Сейчас Меги осваиваю... Хочу освоить ARM и DSP... Кстати, никто не игрался с 80C196?
  9. To Andy_M. Скинь в личку мыло, куда архивом кинуть... По поводу STA013. Мне тоже кажется, что она доступнее. А в качестве ЦАПа, ИМХО можно прикрутить ЦАП от CD-ROMа. Там вроде протоколы одинаковые.
  10. To Andy_M. С софтварным кодированием не заморачивайся. Нужен мощный контроллер. ARM, например, какой-нить.. Лучше использовать аппаратный декодер. У меня есть кое-какие материалы. Сегодня дома посмотрю - завтра поделюсь. Удачи!
×
×
  • Создать...