Решил вспомнить детство, а именно увлечение электроникой. С тех пор много что изменилось, но транзисторы КТ315 всё так же продаются на радиорынке
( Read more... )
У меня сомнения возникли не столько в том, смогу ли я не обломаться сделать большой кусок функционала, сколько в том, что девайс будет хоть раз реально использован по назначению, а не в качестве лабораторной работы. И это сильно охладило пыл. С другой стороны - много усилий уже вложено, поэтому хочется поиметь на выходе хоть и малофункциональный, но готовый продукт.
Посмотрел avrlib... да там винду можно написать на тех функциях ;) А сколько оно Flash / RAM требует (на какой минимально контроллер ставится) ? Или там линкуется в прошивку только то, что используется ? С первых тычков не нашел этой инфы...
Кста, С мне нужен не столько из-за либ, сколько из-за скорости написания кода. А то:
Про циклы и функции вообще молчу. Да, пространство для оптимизации, четкое понимание того, что делаешь на аппаратном уровне, моральное удовлетворение от первых двух пунктов, но для программирования "бизнес-логики" - слишком уж большой overhead, да и нечитабельно без комментов абсолютно, и ещё за регистрами следить надо, стеком, и т.д.
Remote control, насколько я понимаю, делается на готовых радиомодулях (ибо самому сделать качественный и мелкий - наверное таки проблема). Т.е. главное ему интерфейс какой-то отдать (UART?), ну и кодировщик какой-то на стороне пульта, на самом мелком контроллере или вообще на логике, если мало кнопок.
Хотелось бы, конечно, похвастаться своими поделками вживую =) Но на выходные все время и печень уйдут на пампочемпы, и ещё гости к нам приезжают. Вот разве что на пятницу надежды возлагаю...
- Да, я о том же. Продукт сделать можно с любыми наворотами, было бы терпение. Загвоздка в том, что востребованность и вообще что "пипл хавает", а от чего пипл тошнит - ясно только после использования. И если early release, то легче понять, в какую сторону копать.
- Винду, конечно, вряд ли, но многие задачи становятся проще. Что касается памяти - зависит от использоемых фнкций. Это по факту не статическая библиотека, что надо - то и добавил в проект.. Я думал над созданием из этого добра именно либы, но тут проблемы с conditional компиляцией - разная версия кода в зависимости от лиректив препроцессора, которые говорят о используемом МК, скажем, и частоте. А перелинковывать либу при сборке под разные процы - имхо моветон и херит саму идею библиотеки.
Скажу так, для того, чтобы покрутить сервы, понадобились servo.c (600 bytes) и timersx8.c (1872 bytes). Мой код - 138 байт, тоталы
Как видишь, для младших tiny может быть впритык, но для мег - достаточно. Скорость разработки, как минимум, решает.
- По поводу асма - я тут макросами вовсю пользуюсь, так что в принципе код получается компактным. Хотя все равно, есть критическая черта, за которой начинаешь теряться в коде и тут она ближе.
- RC да, на базовых модулях, которые суть простой радиоудлинитель Tx/Rx + интерфейс UARTa. Работы немного, но в потенциале имеем работу над проблемами с нестабильным сигналом, слышал, что сталкивались, можно поискать.
[quote]имеем работу над проблемами с нестабильным сигналом[/quote] На самом деле сигнал стабилен в точке передачи, но в точке приёма из-за многолучевости распространения сигнала возникает сложная интерференционная картина. Один из методов борьбы - две-три разнесенные больше чем на четверть антенны с сумматорами сигнала. Видели, наверное, такие маршрутизаторы/коммутаторы двух или трехрогие для беспроводных сетей для (есть, конечно, и однорогие из дешевых и проблемных :)).
[quote]имеем работу над проблемами с нестабильным сигналом[/quote] На самом деле сигнал стабилен в точке передачи, но в точке приёма из-за многолучевости распространения сигнала возникает сложная интерференционная картина. Один из методов борьбы - две-три разнесенные больше чем на четверть волны антенны с сумматорами сигнала. Видели, наверное, такие маршрутизаторы/коммутаторы двух или трехрогие для беспроводных сетей для (есть, конечно, и однорогие из дешевых и проблемных :)).
Посмотрел avrlib... да там винду можно написать на тех функциях ;) А сколько оно Flash / RAM требует (на какой минимально контроллер ставится) ? Или там линкуется в прошивку только то, что используется ? С первых тычков не нашел этой инфы...
Кста, С мне нужен не столько из-за либ, сколько из-за скорости написания кода. А то:
a=b+c;
d>>=5;
превращается в:
lds r16,b
lds r17,c
add r16,r17
sts a,r16
lds r16,d
swap r16
andi r16,0xF
lsr r16
sts d,r16
Про циклы и функции вообще молчу. Да, пространство для оптимизации, четкое понимание того, что делаешь на аппаратном уровне, моральное удовлетворение от первых двух пунктов, но для программирования "бизнес-логики" - слишком уж большой overhead, да и нечитабельно без комментов абсолютно, и ещё за регистрами следить надо, стеком, и т.д.
Remote control, насколько я понимаю, делается на готовых радиомодулях (ибо самому сделать качественный и мелкий - наверное таки проблема). Т.е. главное ему интерфейс какой-то отдать (UART?), ну и кодировщик какой-то на стороне пульта, на самом мелком контроллере или вообще на логике, если мало кнопок.
Хотелось бы, конечно, похвастаться своими поделками вживую =) Но на выходные все время и печень уйдут на пампочемпы, и ещё гости к нам приезжают. Вот разве что на пятницу надежды возлагаю...
Reply
- Да, я о том же. Продукт сделать можно с любыми наворотами, было бы терпение. Загвоздка в том, что востребованность и вообще что "пипл хавает", а от чего пипл тошнит - ясно только после использования. И если early release, то легче понять, в какую сторону копать.
- Винду, конечно, вряд ли, но многие задачи становятся проще. Что касается памяти - зависит от использоемых фнкций. Это по факту не статическая библиотека, что надо - то и добавил в проект.. Я думал над созданием из этого добра именно либы, но тут проблемы с conditional компиляцией - разная версия кода в зависимости от лиректив препроцессора, которые говорят о используемом МК, скажем, и частоте. А перелинковывать либу при сборке под разные процы - имхо моветон и херит саму идею библиотеки.
Скажу так, для того, чтобы покрутить сервы, понадобились servo.c (600 bytes) и timersx8.c (1872 bytes). Мой код - 138 байт, тоталы
avr-size -t --mcu=atmega168 -C test.elf
AVR Memory Usage
----------------
Device: atmega168
Program: 2956 bytes (18.0% Full)
(.text + .data + .bootloader)
Data: 47 bytes (4.6% Full)
(.data + .bss + .noinit)
Как видишь, для младших tiny может быть впритык, но для мег - достаточно. Скорость разработки, как минимум, решает.
- По поводу асма - я тут макросами вовсю пользуюсь, так что в принципе код получается компактным. Хотя все равно, есть критическая черта, за которой начинаешь теряться в коде и тут она ближе.
- RC да, на базовых модулях, которые суть простой радиоудлинитель Tx/Rx + интерфейс UARTa. Работы немного, но в потенциале имеем работу над проблемами с нестабильным сигналом, слышал, что сталкивались, можно поискать.
- Пятница - можно :)
Reply
На самом деле сигнал стабилен в точке передачи, но в точке приёма из-за многолучевости распространения сигнала возникает сложная интерференционная картина. Один из методов борьбы - две-три разнесенные больше чем на четверть антенны с сумматорами сигнала. Видели, наверное, такие маршрутизаторы/коммутаторы двух или трехрогие для беспроводных сетей для (есть, конечно, и однорогие из дешевых и проблемных :)).
Reply
На самом деле сигнал стабилен в точке передачи, но в точке приёма из-за многолучевости распространения сигнала возникает сложная интерференционная картина. Один из методов борьбы - две-три разнесенные больше чем на четверть волны антенны с сумматорами сигнала. Видели, наверное, такие маршрутизаторы/коммутаторы двух или трехрогие для беспроводных сетей для (есть, конечно, и однорогие из дешевых и проблемных :)).
Reply
Reply
Leave a comment