помогите отредактировать исходник Интересный проект с блютус

Обсуждаем контроллеры компании Atmel.
Ответить
Открыл глаза
Аватара пользователя
Сообщения: 49
Зарегистрирован: Ср апр 03, 2013 00:50:08

Сообщение dethdron »

Доброго времени суток , уважаемые коты, какой день уже бьюсь не могу переделать исходник под Atmega 8! Только, только начал изучать внешние прерывания и т.д и т.п, вообщем темный лес гремучий лес... Есть отличный проект на atMega8+bm HC05+android! Вот Видео https://youtu.be/BZy8y8zAXwI ! Суть в том что у автора включение работает с фиксацией ! Я Хотел бы переделать что бы алгоритм был такой пока держишь высокий уровень , отпускаешь низкий/! Как это сделать ума не приложу((( Исходник прилагаю
Спойлер#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
#define F_CPU 8000000UL
#define FOSC 8000000UL
#define BAUD 9600
#define MYUBRR ( FOSC + BAUD * 8UL ) / (16UL * BAUD) -1

#define LED_1 (1<<PC5)
#define LED_2 (1<<PC4)
#define LED_3 (1<<PC3)
#define LED_4 (1<<PC2)


#define LED1_ON PORTC &= ~LED_1
#define LED1_OFF PORTC |= LED_1

#define LED2_ON PORTC &= ~LED_2
#define LED2_OFF PORTC |= LED_2

#define LED3_ON PORTC &= ~LED_3
#define LED3_OFF PORTC |= LED_3

#define LED4_ON PORTC &= ~LED_4
#define LED4_OFF PORTC |= LED_4




static char wiadomosc;

void USART_Init( unsigned int ubrr)
{

UBRRH = (unsigned char)(ubrr>>8);
UBRRL = (unsigned char)ubrr;

UCSRB = (1<<RXEN)|(1<<TXEN)|(1<<RXC);

UCSRC = (1<<URSEL)|(1<<USBS)|(3<<UCSZ0);
}
void USART_Transmit( unsigned char data )
{

while ( !( UCSRA & (1<<UDRE)) )
;

UDR = data;
}

unsigned char USART_Receive( void )
{

while ( !(UCSRA & (1<<RXC)) )
;

return UDR;
}


int main (void)
{

DDRC |= LED_1 | LED_2 | LED_3 | LED_4 ;
PORTC |= LED_1 | LED_2 | LED_3 | LED_4 ;


USART_Init(MYUBRR);
sei();
while(1) {
if(wiadomosc)
{
USART_Transmit(wiadomosc);
}
wiadomosc = 0;
}
}

ISR(USART_RXC_vect)
{
wiadomosc=UDR;
switch(wiadomosc)
{
case '1':
LED1_ON;

break;
case '2':
LED1_OFF;
break;
case '3':
LED2_ON;
break;

case '4':
LED2_OFF;
break;

case '5':
LED3_ON;
break;
case '6':
LED3_OFF;
break;

case '7':
LED4_ON;
break;

case '8':
LED4_OFF;
break;
}
}
Помогите пжлста
Реклама
Друг Кота
Аватара пользователя
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Сообщение oleg110592 »

Наверное придется переделывать и андроидное приложение - менять обработчик события нажатия кнопки
http://developer.alexanderklimov.ru/and ... button.php
исходников андроида не увидел
Реклама
Первый раз сказал Мяу!
Аватара пользователя
Сообщения: 23
Зарегистрирован: Пн дек 15, 2014 19:04:08
Откуда: г. Пермь

Сообщение Andry_67 »

Есть ещё более отличный проект на Ардуино(atMega8)+bm HC05+android! Есть программа RemoteXY написанная для android http://remotexy.com/ru
Там можно быстро создать любые кнопки с фиксацией и без, переключатели, индикаторы. Единственное нужно "слегка" подправить код arduino - указать ножку где светодиод. Потом скомпилировать проект, найти hex файл и зашить его в мегу 8.
Друг Кота
Аватара пользователя
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск

Сообщение WiseLord »

Действительно, интересный проект.
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Открыл глаза
Аватара пользователя
Сообщения: 49
Зарегистрирован: Ср апр 03, 2013 00:50:08

Сообщение dethdron »

надеюсь у меня что нибудь получится!)) Кто нибудь делал уже подобное?
Реклама
Друг Кота
Аватара пользователя
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск

Сообщение pyzhman »

У метода onTouch() есть параметр MotionEvent, позволяющий более тонко определять касания экрана. Если произойдет событие, когда пользователь коснулся экрана, то ему будет соответствовать константа ACTION_DOWN. Соответственно, если пользователь уберёт палец, то нужно использовать константу ACTION_UP. Таким образом, можете расценивать щелчок кнопки как комбинацию двух событий - касания и отпускания.
Вот эти экшндаун и экшнап должны отправлять "1" и "2" на мегу. И будет желаемое.
Docendo discimus
Контактная информация:
Реклама
Ответить

Вернуться в «AVR»