kimstik
-
Постов
46 -
Зарегистрирован
-
Посещение
Сообщения, опубликованные kimstik
-
-
Если замена RS232 то планипуется точка-точка?
В принципе все равно. Но было бы не разумно не использовать многоточку.
-
Для сбора данных/замены rs232. Скорость не принципиальна.
Хотелось бы готовый стек.
Расстояние в пределах помещения. Пусть будет метров 20.
Разводка и согласование самостоятельно.
Вобщем хочется минимальной цены. Но при этом знать что приносится в жертву (удобство интерфейса, надежность, потребление, цена,...)
По докам это оценить можно, но не все и не факт что так будет на самом деле.
-
Опубликовано · Изменено пользователем kimstik · Пожаловаться
Сейчас расплодилось огромное количество трансиверов, и очень трудно сделать выбор.
CC2420
MC13192FC
AT86RF231
MRF24J40
Гдето в сети находил что качество кода стека для TI лучше чем Microchip. Правда голословно.
То что хорошего в каждом из них - много и везде написано.
А какие неописанные грабли есть?
Как жертва рекламы я по видимому падаю на атмель. Как сделать осмысленный выбор?
http://electronix.ru/mkportal/modules/medi...ndex.php/ZigBee
-
живодеры!!
вот увидете - перестанет компилятор вам компилить вообще после этого - пожалеете :)
-
точно не помню :( но нарывался уже на непонимание анонимного union, и вроде как даже не в одном месте. И это был С без плюсов.
zltigo: вам виднее,и спорить не хочется. мне лично две длинные переменные вместо одной короткой - лишняя сущность (по оккаму).
Тем не менее хочется отметить что вы везунчик - у вас есть выбор как минимум из 3х подходов реализации задачи :)
-
Спасибо, я както без мплаба обхожусь. В командной строке.
Раньше помнится народ баги и вокэраунды собирал/обсуждал хайтечевские.
Подскажите где нынче все пасутся? Или не актуально стало и все на армы ушли?
-
Я стараюсь union реже использовать - это одна из самых непереносимых и компилерозависимых вещей.
Не все компилеры понимают безымяный union. Длинные бестолковые имена. Куча не всегда понятных переменных.
А то что в хедер для проверки не вставить объявления - это цена вопроса.
Вы же сами просили решения(хака)? Значит вам за него и отвечать. :)
-
Меня интересовала именно часть ввода аудио. Поэтому и назвал так.
Плата находится в месте где кончается USB кабель и начинается аудиокабель до ушей.
Микросхемки шлифанул производитель.
В miniUSB всеже 5 контактов - легко проверяемый факт (там еще есть ID).
Разъем там честный miniUSB но с удлененными контактами питания (hotswap).
Эх!! а я губу закатал - хотел VOIP гарнитуру для ноута сделать из этого.. обломс..
-
Имхо полный изврат писать под этот контроллер на С.
Целиком и полностью согласен :)
Более кашерно покупать готовое.
Но вопрос даже не касался контроллера.
Я прошу подтвердить/опровергнуть мои опасения что этот компилятор в новых версиях делает худший код.
-
Опубликовано · Изменено пользователем kimstik · Пожаловаться
ISR сделай в отдельном файле и используй как
dword timer;
а в основном объяви как
extern volatile dword timer;
-
Купил както такую гарнитуру для моторолы http://www.digibox.ru/catalog/phones/acces...moto_v3_met_st/
Не удержался и залез внутрь. Удивился найдя там какой-то разум за эти деньги:)
Я предполагал что будет какой-то хакнутый вариант с передачей аналогового аудио. Провод оказался настоящий 5-проводной USB.
Выходит что там передается цифра? Если да, то кто тут хост? или OTG?
Кто нить знает как гарнитуры моторольные работают?
-
Вот код который компилится на ура на 9.50pl2. Использует все 2 уровня аппаратного стека.
Новые версии мало того что чудят не по детски, еще и последний вызов делают с программным стеком.
Думал что типа корешок для прерываний (которых нету в этом кристалле) случайно поставили. Нет же - убираю последнюю строку с обращением к таблице и вуаля все вызывается с аппаратным стеком!!
Ежу понятно что этот вызов требует стека, но он никак не приводит к переполнению.
Call graph: (fully expanded)
*_main size 0,0 offset 0
* _foo size 0,0 offset 0
* _foo2 size 0,0 offset 0
Просто чума. Впечатление что hitech с 2006 года отдыхает.
Поэтому родились 2 вопроса:
1. Может я что попутал и это лечится ?
1. Есль ли что либо лучше/стабильнее 9.50pl2 ?
#include <pic.h> const unsigned char tbl[]={0,7,2,5}; unsigned char i=0; fastcall void foo2(void) { i++; } fastcall unsigned char foo(void) { foo2(); foo2(); } void main(void) { foo(); foo(); GPIO = tbl[i&0x03]; }
-
система - XP SP3
распакован в : e:\work\tools\prg\lng\c\gcc\avr_kgp
скрипт компиляции :
set PATH=%GCC_ROOT%\avr_kgp\bin;%PATH% avr-gcc -v main.c >1.txt 2>2.txt pause
переменная GCC_ROOT=e:\work\tools\prg\lng\c\gcc
Может у тебя переменная GCC_EXEC_PREFIX есть? Её ругают.
У меня нет ни одной переменной от GCC, только в PATH путь до бинарника.
-
свежак для AVR
bu2.19.51_20081223
gcc4.4.0_20081223
gdb6.8.0_20081223
avrlibc1.6.4
проверил на LUFA(MyUSB) - работает
код просел на 22 байта в сравнении gcc4.4.0.20080530 :)
-
AT90USB162/82 не самое удачное название для этих чипов. Хотя их название
начинается с AT90 как у AT90USB128*, AT90PWM* и по аналогии могло показаться
что в них стоит ядро ATmega, но на самом деле они не имеют инструкций
умножения, в них стоит ядро как в новых ATtiny. AT90USB82 обладает еще одним
уникальным свойством, не смотря но то что он имеет всего 8 КВ флеш, в нем
работают инструкции JMP/CALL и вектора прерываний расположены со
смещением в 4 байта, а не два как у всех других контролеров с 8 и менее флеш.
AT90USB162/82 реально поддерживаются в GCC с версии 4.3.3
(может 4.3.2). И то для binutils 2.18 требуется небольшой патч.
Для работы я бы порекомендовал вам использовать WinAVR2080610. Если Вы будете
использовать другие сборки проверьте что компилятор не генерирует инструкции
умножения для этих контроллеров.
Анатолий.
PS: более ранние версии не будут использовать инструкцю MOVW для AT90USB162/82.
Все правильно написано.
Думаю это кому нибудь будет полезно.
прико в другом.
проект легко и непринужденно собирается этим:
kgp_avr-bu2.18.50.20080115_gcc4.3.0.20080111_avr-libc20080115.7z
kgp_avr-elf_bu2.18.50.20080601_gcc4.4.0.20080530_gdb6.8.20080531_avrlibc1.6.2.7z
и собранное успешно работает в железе. <---
А 4.3.2 - не желает. И не в процессе выполнения, когда надо делать собственно умножение.
Возможно патчей каких не хватает. Мне сложно судить.
Проект кстати достаточно развитый http://www.fourwalledcubicle.com/MyUSB.php
-
как один из вариантов еще советую http://translate.google.com/
он мне недавно помог японский даташит вразумить
-
clean делал конечно же
не помогло
кстати и на kgp_avr-bu2.18.50.20080115_gcc4.3.0.20080111_avr-libc20080115.7z компилится на ура
-
чтото проект не собиратеся под gcc 4.3.2 на at90usb162 - в либах путается
в kgp_avr-elf_bu2.18.50.20080601_gcc4.4.0.20080530_gdb6.8.20080531_avrlibc1.6.2.7z все собирается на ура
avr-gcc -mmcu=at90usb162 -I. -gdwarf-2 -DF_CPU=8000000UL -DBOARD=BOARD_USBKEY -DUSE_NONSTANDARD_DESCRIPTOR_NAMES -DUSB_DEVICE_ONLY -DUSE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED)" -Os -funsigned-char -funsigned-bitfields -ffunction-sections -fpack-struct -fshort-enums -finline-limit=20 -Wall -Wstrict-prototypes -Wundef -Wa,-adhlns=CDC.o -I../../ -std=gnu99 -Wundef -MMD -MP -MF .dep/CDC.elf.d CDC.o Descriptors.o ../../MyUSB/Scheduler/Scheduler.o ../../MyUSB/Drivers/USB/LowLevel/LowLevel.o ../../MyUSB/Drivers/USB/LowLevel/Endpoint.o ../../MyUSB/Drivers/USB/LowLevel/DevChapter9.o ../../MyUSB/Drivers/USB/HighLevel/USBTask.o ../../MyUSB/Drivers/USB/HighLevel/USBInterrupt.o ../../MyUSB/Drivers/USB/HighLevel/Events.o ../../MyUSB/Drivers/USB/HighLevel/StdDescriptors.o --outp
ut CDC.elf -Wl,-Map=CDC.map,--cref -Wl,--relax -Wl,--gc-sections -lm
e:/!cc/gcc/bin/../lib/gcc/avr/4.3.2/../../../../avr/bin/ld.exe: avr:4 architecture of input file `e:/!cc/gcc/bin/../lib/gcc/avr/4.3.2/../../../../avr/lib/avr35/crtusb162.o' is incompatible with avr:3 output
e:/!cc/gcc/bin/../lib/gcc/avr/4.3.2/../../../../avr/bin/ld.exe: avr:51 architecture of input file `CDC.o' is incompatible with avr:3 output
e:/!cc/gcc/bin/../lib/gcc/avr/4.3.2/../../../../avr/bin/ld.exe: avr:51 architecture of input file `Descriptors.o' is incompatible with avr:3 output
e:/!cc/gcc/bin/../lib/gcc/avr/4.3.2/../../../../avr/bin/ld.exe: avr:4 architecture of input file `../../MyUSB/Scheduler/Scheduler.o' is incompatible with avr:3 output
e:/!cc/gcc/bin/../lib/gcc/avr/4.3.2/../../../../avr/bin/ld.exe: avr:4 architecture of input file `../../MyUSB/Drivers/USB/LowLevel/LowLevel.o' is incompatible with avr:3 output
e:/!cc/gcc/bin/../lib/gcc/avr/4.3.2/../../../../avr/bin/ld.exe: avr:4 architecture of input file `../../MyUSB/Drivers/USB/LowLevel/Endpoint.o' is incompatible with avr:3 output
e:/!cc/gcc/bin/../lib/gcc/avr/4.3.2/../../../../avr/bin/ld.exe: avr:4 architecture of input file `../../MyUSB/Drivers/USB/LowLevel/DevChapter9.o' is incompatible with avr:3 output
e:/!cc/gcc/bin/../lib/gcc/avr/4.3.2/../../../../avr/bin/ld.exe: avr:4 architecture of input file `../../MyUSB/Drivers/USB/HighLevel/USBTask.o' is incompatible with avr:3 output
e:/!cc/gcc/bin/../lib/gcc/avr/4.3.2/../../../../avr/bin/ld.exe: avr:4 architecture of input file `../../MyUSB/Drivers/USB/HighLevel/USBInterrupt.o' is incompatible with avr:3 output
e:/!cc/gcc/bin/../lib/gcc/avr/4.3.2/../../../../avr/bin/ld.exe: avr:4 architecture of input file `../../MyUSB/Drivers/USB/HighLevel/Events.o' is incompatible with avr:3 output
e:/!cc/gcc/bin/../lib/gcc/avr/4.3.2/../../../../avr/bin/ld.exe: avr:4 architecture of input file `../../MyUSB/Drivers/USB/HighLevel/StdDescriptors.o' is incompatible with avr:3 output
make: *** [CDC.elf] Error 1
ZigBee с нуля
в RF & Microwave Design
Опубликовано · Изменено пользователем kimstik · Пожаловаться
Благодарствую за ответ!
Не хочется заниматься изначально тюнингом, поэтому только стандартный ZigBee. Задача - максимально общий сбор данных (окружающая среда, кнопки, ...)
Спасибо за Freescale - съекономили мне малость времени на оценке цен. Вполне может быть решающем в последний момент.
Значит вы подтверждаете акцент на Атмел?
Меня еще смущает активность TI :) Как они в сравнинии?
ps: вот еще нашел блог интереный по теме http://freaklabs.org/index.php/Blog/Zigbee...420-review.html