CyberNik
Участник-
Постов
27 -
Зарегистрирован
-
Посещение
Репутация
0 ОбычныйИнформация о CyberNik
-
Звание
Участник
- День рождения 11.10.1986
Контакты
-
Сайт
Array
Информация
-
Город
Array
-
GCC - бесплатный, но не такой уж и маленький :)
-
Начнем хотябы с этого: и зачем мне 16 битная логика когда мне и 8и с головой хватает?...
-
Спасибо за ссылки. Еще два вопросика: 1 - нужно ли восстанавливать "попорченные" регистры при выходе из asm вставки или компилятор сам за этим следит 2 - а можно ли написать нужный мне кусок кода на asm'e отдельно, в другом файле, а потом при компиляции файлы слинковать и юзать extern объявление в Си?
-
Как можно вставить в исходник на Си asm вставку в несколько строк? Получилось только по одной команде в стиле asm ("nop"), а мне нужно написать целый цикл опроса датчиков, по одной команде оч некрасиво и неудобно, как сделать?
-
Т.е. первые две цифры это пикофарады а последняя цифра - показатель стпенени при домножении на 10?
-
Спасибо за ответы, а какая тогда маркировка у 22пФ?
-
Почему при внутреннем RC генераторе у меня связь с компьютером работает на ура, а вот как только цепляю кварц и два кондера происходит непонятно что... UBRR беру из таблиц в даташите, кондеры по "224"... Уже перепробовал все кварцы что были под рукой - 4, 8 и 7.3782 МГц на разных скоростях... Могут ли "монтажные" емкости быть причиной неудачи? Просто когда паял там многовато олова получилось, но ни с чем лишним ничего не замкнуто, проверял тестером...
-
Это если на 1wire шине их несколько, если же датчик один, его поиск (чтение заводского ROM кода) не обязателен. Но я все равно проверю, спасибо.
-
Да, через УАРТ, но там ошибок нету, я через гиперткрминал посылаю команды контроллеру на которые он успешно отвечает мигая светодиодами и т.д., и одна из этих команд - опрос датчика... Дебагил по шагам через JTAG ICE и мерял напряжения на ножках... До сих пор не пойму почему там не появляется на выходе 0...
-
я слышал что в ARM бывают встроенные программаторы - все что нужно - подпаться к COM порту компьютера....
-
Ну вот, купил специально второй датчик для проверок в CodeVision #include <mega16.h> // 1 Wire Bus functions #asm .equ __w1_port=0x1B;PORTA .equ __w1_bit=4 #endasm #include <1wire.h> #include <ds18b20.h> #include <stdio.h> void main(void) { // USART initialization UCSRA=0x00; UCSRB=0x08; UCSRC=0x86; UBRRH=0x00; UBRRL=0x0C; // 1 Wire Bus initialization w1_init(); if (ds18b20_init(NULL,0,0,DS18B20_12BIT_RES)) { while (1) { /* measure and display the temperature(s) */ printf("t=%+.3f\xf8C\n\r", ds18b20_temperature(NULL)); }; } else printf("error!"); while (1); } выдает ошибку на обоих датчиках... от куда беруться такие напряжения (4.28В, см. выше)? Какие есть идеи? Просто схема подключения элементарная, ну где там можно ошибиться....
-
Ничего не понимаю... PORTA.4(нумерация с нуля) Mega16(внутренний 1 МГц) подключон через 4к7 к +5 и от туда же (прямо от порта перед резистором) подключон DQ DS18B20, еще две ножки датчика подключены на +5 и землю (непаразитное питание).. Ошибок в схеме вроде нету, но вот на этом коде оч странные напряжения на выходе порта (меряю между землей и ножкой порта) int ow_reset() { uint8_t r=0; PORTA &= ~(1<<4); // +4.95В DDRA |= (1<<4); // DQ = 0; r = (PORTA & (1<<4)); //+4.28В как такое может быть??? _delay_us(480); DDRA &= ~(1<<4); // DQ pull up _delay_us(70); r = (PORTA & (1<<4)); // Capture the presence pulse _delay_us(410); return r; // +4.95В } как такое возможно?
-
ATMega16 vs ATMega32
CyberNik ответил virtuality тема в AVR
Включена внешняя синхронизация, меняйте CKSEL например в 0х01. так будет работать?