Ferro2
Участник-
Постов
107 -
Зарегистрирован
-
Посещение
Весь контент Ferro2
-
Нахожусь в г. Уфа. Возможна отправка почтой по РФ. Рассмотрю ваши предложения. Адрес для связи [email protected] PIC16F886 (dip-28) - более 100 штук. PIC18F4550-I/P (dip-40) около 9 штук. PIC18F4520-I/P (dip-40) около 10 штук. PIC18F2550-I/SP (dip-28) около 5 штук. PIC18F2520-I/SP (dip-28) около 10 штук. PIC18F2620-I/SP (dip-28) около 50 штук. PIC18F4620-I/P (dip-40) – около 50 штук.
-
А где их можно приобрести (в России или Китае) ? Update Нашел в chipselect.ru Цены более-менее.
-
Я совсем запутался. Решил для проверки всей системы в железе, вывести меандр на один из портов МК. Написал следующий простейший код: void main () { Init_Device(); while(1) { _nop_(); _nop_(); _nop_(); _nop_(); RST = 1; _nop_(); _nop_(); _nop_(); _nop_(); RST = 0; } } Подключил к выводу МК логический анализатор. Наблюдаю лог. 1. Ничего не меняется. Отладки в Кейл уже нет. Запускаю симулятор - значения в регистре порта не меняются. На что похоже? Поменял номер порта с 7-го на 2-й. Все в порядке.
-
Я говорил о железном логическом анализаторе. Проверял работу в железе.
-
Не работает. Логический анализатор "ничего не видит" на выводах МК. Возможно, что не правильно настроены порты или еще что-то.
-
Да, спасибо. Получилось, разобрался. Скомпилировалось, прошивку выдал. Буду проверять в железе. Столько вопросов возникло касательно Keil, файлов входящих в проект ...
-
Если мы не выберем модель памяти "large", то xdata (бОльшая часть встроенного ОЗУ в МК) не будет использоваться? Или необходимо установить галочку в настройках "Use On-chip XRAM" ? Я думал, что у меня есть лицензия ..
-
Большое спасибо за помощь! Но появилась следующая проблема: *** FATAL ERROR L250: CODE SIZE LIMIT IN RESTRICTED VERSION EXCEEDED MODULE: C:\KEIL\C51\LIB\C51L.LIB (-----) LIMIT: 0800H BYTES Target not created Но как я понял, для чипов Silabs не должно быть ограничений по размеру кода. Буду разбираться.
-
Прошу подсказки. После того как поработал немного с ЖК-дисплеем на контроллере HD44780 решил попробовать цветной дисплей на контроллере ST7735. После долгих поисков в просторах интернета готовой библиотеки для С51 наткнулся на файлы из вложения. Как я понял - это для АВРок. Первый архив - скачанные файлы без изменений. Второй архив - мой проект в Keil. Подкорректировал под C8051Fxxx Но при компиляции возникли неожиданные ошибки. Некоторые я поборол. Как мне кажется. Возможно, что они позже всплывут. Сейчас имеем следующее. в блоке void TFTInit() в самом конце есть следующий код unsigned char i; for(i = 0; i < 32; i++) write_byte(2*i,1); //Red for(i=0;i<64;i++) write_byte(1*i,1); //Green for(i=0;i<32;i++) write_byte(2*i,1); //Blue write_byte(0x2c,0); delay_us(150); Keil при компиляции выдает следующие ошибки compiling main.c... TFTM1802.h(131): error C141: syntax error near 'unsigned' TFTM1802.h(131): error C202: 'i': undefined identifier TFTM1802.h(132): error C202: 'i': undefined identifier TFTM1802.h(133): error C202: 'i': undefined identifier TFTM1802.h(134): error C202: 'i': undefined identifier TFTM1802.h(135): error C202: 'i': undefined identifier TFTM1802.h(136): error C202: 'i': undefined identifier TFTM1802.h(137): error C202: 'i': undefined identifier main.c - 8 Error(s), 0 Warning(s). Указанный тип переменной поддерживается. http://www.keil.com/support/docs/1677.htm Чего ему не хватает? ST7735_128_160.zip ST7735_128_160_Keil.zip
-
Для меня с первого взгляда ничего не понятно: необходимо читать MANSDCC.PDF. Для себя узнал, что мой любимый Keil не имеет ограничения по размеру кода. Точнее, я так перевел сообщение с сайта Silabs: https://www.silabs.com/products/mcu/Pages/8...r-software.aspx Продолжим работать в нем ))
-
Я имел ввиду, что в google поиск по ключевым словам "SDCC 8051" не принес положительных результатов. На русскоязычных сайтах практически ничего не нашел. Нет ни отзывов, ни примеров реализации, ни рекомендаций по применению...
-
Компилятор у Keil считается лучшим для C51, в частности для МК C8051F Silicon Labs ? Также установил Ride 7 + Rkit51. Надо бы сравнить его с Keil. У Ride ограничение для бесплатной версии вроде 8 кБ. На форумах тишина насчет SDCC для 8051. Вот что еще нашел http://www.silabs.com/products/mcu/Pages/8....aspx#keil-pk51 Keil® PK51 Developer’s Kit The Keil PK51 Developer’s Kit includes an industry-leading 8051 C compiler, linker and assembler for use wih Silicon Labs’ 8-bit microcontrollers and Studio. This toolchain package provides the build support for 8051 projects, while the IDE provides editing and debugging support. This free toolchain comes without a time or code size limit! Получается бесплатная версия для МК 8051 от Silabs ?
-
Сейчас стоит Silabs IDE и вроде бы он без компилятора. Я к нему подключил компилятор Keil. А дальше? Переучиваться на другое ПО или просить работодателя купить Keil? Я не делал проектов на заказ. Заказчики просят коды программ, проверяют на лицензионную чистоту? Еще побаиваюсь насчет возможного вреда системе от кряка.
-
Что можете сказать касательно следующих продуктов: http://www.wickenhaeuser.de/uc51data/uc51_fly.pdf http://www.crossware.com/i8051/Compiler Keil C51 слишком дорогой. Пользоваться ломаным ПО не хотелось бы.
-
Получается, что из МК 51-й серии Silabs предлагает лучшее соотношение качество/цена.
-
Увидел вот эти камни случайно: http://ru.aliexpress.com/item/10pcs-lot-P8...2386655890.html Errata практически пустая. Хорошая замена всяким ATtiny. Есть у них на сайте генератор кода: http://www.codearchitect.org/nxp/v2/ Не приходилось применять?
-
Не пойму почему программа не работает должным образом, если в строке unsigned int counter = 50; убрать "= 50". Ведь есть zz.
-
Я так понял, что число в counter определяет количество переполнений таймера (большие задержки, к тому же частота 98 МГц): таймер переполнился - инкрементируем counter и проверяем равенство counter нулю. Пока не придумал функцию, которая бы запускала таймер на необходимое кол-во раз повторений. При этом ядро должно быть готово отреагировать на другие прерывания и задачи.
-
Приветствую всех! Играюсь с таймером/задержками/прерываниями. Потратил два часа времени и не смог разобраться в чем причина. Замысел - ввести константу zz равную 50. Т.е., вместо "counter = 50" в двух местах кода написать "counter = zz". Как только раскомментирую первую строку с "counter = zz" в Timer0_IS, светодиод перестает мигать. Прошу помощи. Планирую организовать задержки различной длительности с применением таймера. #include <c8051f120.h> #include <stdio.h> #define zz 50; sbit LED_BLINK = P1^6; unsigned int counter = 50; void Port_Init (void); void Timer0_Init (void); void Oscillator_Init() { char SFRPAGE_SAVE = SFRPAGE; int i = 0; SFRPAGE = CONFIG_PAGE; OSCICN = 0x81; CCH0CN &= ~0x20; SFRPAGE = LEGACY_PAGE; FLSCL = 0xB0; SFRPAGE = CONFIG_PAGE; CCH0CN |= 0x20; PLL0CN |= 0x01; PLL0DIV = 0x01; PLL0FLT = 0x0F; PLL0MUL = 0x10; for (i = 0; i < 15; i++); // Wait 5us for initialization PLL0CN |= 0x02; while ((PLL0CN & 0x10) == 0); CLKSEL = 0x02; SFRPAGE = SFRPAGE_SAVE; } void Port_Init (void) { char SFRPAGE_SAVE = SFRPAGE; SFRPAGE = CONFIG_PAGE; XBR2 = 0x40; P1MDOUT = 0x40; SFRPAGE = SFRPAGE_SAVE; } void Timer0_Init(void) { char SFRPAGE_SAVE = SFRPAGE; // Save Current SFR page SFRPAGE = TIMER01_PAGE; // Set SFR page TH0 = 0xDB; TL0 = 0xF2; // Init Timer0 Low register TMOD = 0x01; // Timer0 in 16-bit mode CKCON = 0x02; // Timer0 uses a 1:48 prescaler ET0 = 1; // Timer0 interrupt enabled TCON = 0x10; // Timer0 ON SFRPAGE = SFRPAGE_SAVE; // Restore SFR page } void Timer0_ISR (void) interrupt 1 { //counter = zz; // Здесь было counter = 50; TF0 = 0; counter--; if (counter == 0) { counter = zz; // Здесь было counter = 50; LED_BLINK = ~LED_BLINK; } TH0 = 0xDB; TL0 = 0xF2; } void main(void) { WDTCN = 0xDE; // Disable watchdog timer WDTCN = 0xAD; Oscillator_Init(); Timer0_Init (); // Initialize the Timer0 Port_Init (); // Init Ports EA = 1; // Enable global interrupts //LED_BLINK = 0; while (1); }
-
Благодарю за информацию. Почитаем ...
-
И сейчас не очень дешевые. Думаю, 90% объема продаж - на производство.
-
Надеюсь, что на мой век хватит. Очень не хотелось бы изучать всякие Кортексы. Только, если возьмут на такую работу )) В наших краях - маловероятно.
-
Надеюсь и на дальнейшую помощь. Как мне показалось, знатоков МК Silabs не так уж и много. По крайней мере, на данном форуме. Статей на русском языке в сети по пальцам можно сосчитать: АВРки и STM32 в основном.
-
А где бы почерпнуть информацию о том, как пишутся программы на Си в Keil для 8051 ? Что-то можно из примеров использовать. Но этого, думаю, будет недостаточно. На сайте Keil искать? На русс. яз., я так подозреваю, нет.
-
Когда я вижу подобный код, то просто вхожу в ступор. BUS_PORT->BSRR=(data<<BUS_PIN_0)|(((uint32_t)((~data)<<BUS_PIN_0)&BUS_MASK)<<0x10);