Как сделать приложение под Android

Оказывается даже хабр не хлещет описаниями как сделать приложение под андроид с нуля на флэше.

Собственно я не ориентируюсь на всяких гуру в этой сфере.

Нашел 2 статьи где описывают создание приложений под андроид, но на яве:

И Так с чего надо начинать?

Шаг 1: Поставить флэш

Ссылка на офф сайт вот. Думаю в просторах можно найти и торрент. В установке проблем думаю не будет ни у кого.

Шаг 2: Создаем проект для Android

После запуска флэша появится окно в котором вам предложат создать некоторые шаблоны. Выбираем AIR for Android

Сним__ок

 

После создания у вас откроется не сохраненный файл флэш.

Альтернативно можно создать проект через специальное окошко.

Без имени-3

 

1. Menu -> Window -> Project

2. В открывшемся окошке пишем название проекта указываем путь к папке

3. В поле таргет указываем AIR for Android

4. Жмем создать проект

Шаг 3: Создаем наполнение

Теперь создадим что-нибудь простенькое в нашей флэшке.

Без имен___и-2

 

Создаем текстовое поле, пишем в нем заветное Hello world, теперь открываем свойства этого текстового поля. В свойствах укажем ему имя text и сделаем его динамично изменяемым: Static text -> Dynamic text. В свойствах еще много всяких интересностей (оставим на самообучение)

Теперь создадим элемент в библиотеке.

Без имени-4

Откроем окошко Library, создадим новый элемент нажав на иконку правом нижнем углу окошка. Откроется окно создания где мы задаем название, тип – MovieClip, ставим галку экспорта в экшн скрипт. Все можно жать ОК.

Теперь нарисуем например квадрат, и выйдем из этого элемента в главную сцену нажав на Scene 1. Добавляем элемент из библиотеки в рабочее пространство. Опять же в его настройках зададим имя – btn.

Пора написать простейший код. Который при нажатии на этот прямоугольник будет менять надпись в строке.

Для этого необходимо создать класс.

Без имени-5

 

Есть два варианта (показаны на картинке), я воспользовался вторым. Первый вариант для создания дополнительных классов и классов сопряженных с элементами в библиотеке, а второй для создания главного класса, соответственно и назовем его Main.

После создания сохраняем его и пишем вот такой код

package  {
 import flash.display.MovieClip;
 import flash.events.*;
 import flash.ui.MultitouchInputMode;
 import flash.ui.Multitouch;
 
 public class Main extends MovieClip {
	public function Main() {
		Multitouch.inputMode=MultitouchInputMode.TOUCH_POINT;
		btn.addEventListener(TouchEvent.TOUCH_END,fn);
	}
	function fn(event:Event){
		txt.text = 'Hello User!!!';
	}
 }
}

Теперь нажав Ctrl+Enter запускаем наше приложение.

Без имени-6

В открывшемся окошке симулятора откроем закладку TOUCH … и ставим галочку как показано на картинке. Теперь эмитируется тач пад нажимаем на квадрат и надпись меняется.

Шаг 4: Создаем установочный файл

Для создания установочного файла зайдем в свойства проекта, и кликаем на ярлычке напротив Target, как показано на картинке.

h

 

В закладке деплоймент надо будет создать сертификат и потом указать его пароль. Без него ничего не работает. Так же тут есть еще много интересных настроек (оставим на самообучение), ставим галку и нажимаем паблиш. Ждем пока закончится работа. и в папке с проектом, теперь можно найти файл apk который запустится на устройстве с Android ом и установит наше приложение.

Шаг 5: Устанавливаем и тестируем

Во флэше заложены всякие плючшки типа отладки на устройстве через USB ( Menu -> Debug -> … ).

АЦП На контроллерах ATmega

Аналого-цифровой преобразователь  ( ADC ) — устройство, преобразующее входной аналоговый сигнал в дискретный код (цифровой сигнал). Обратное преобразование осуществляется при помощи ЦАП (цифро-аналогового преобразователя, DAC).

818519252

В контроллерах Atmega есть встроенный преобразователь при том зачастую он способен обрабатывать сигналы с 8 разных каналов, но последовательно.

Как и во всех модулях можно обрабатывать по прерыванию, можно напрямую, можно со внешнего рперывания, в общем как хотите. Рассмотрим пример в лоб.

unsigned short ADCGet(unsigned char adc_input)
{
 ADMUX=adc_input | (ADMUX & 0xF0);
 _delay_us(10);
 ADCSRA |= (1<<ADSC);
 while((ADCSRA & 0x10)==0); 
 ADCSRA|=0x10;
 return ADCW;
}
void ADCInit(){
 ADMUX = (1<<REFS0)|(0<<MUX3)|(0<<MUX2)|(1<<MUX1)|(0<<MUX0);
 ADCSRA = (1<<ADEN)|(1<<ADIE);
}

Первая функция вызывает преобразование:

  1. задаем канал с которого будем считывать
  2. ждем пока пройдет переходный процесс на ногах
  3. начинаем преобразование
  4. ждем окончания
  5. ставим, навсякий, флаг об окончании
  6. возвращаем считанное значение.

Далее Функция инициализации:

  1. REFS0..1 – это выбор опорного напряжения ( напряжение соответствующее максимальному значению ацп, у нас 10 разрядный ацп -> MAX=1023 следовательно при опорном напряжении, например напряжение питания, если напряжение между землей и считываемой ногой достигнет значения половины питания то ацп выдаст нам 512)
    1. 00 – напр на ноге AREF
    2. 01 – напр питания
    3. 10 – нет
    4. 11 – внутренний источник опорного напряжения
  2. MUX3..0 – номер канала