这是我在SO中的第一个问题.我是新的(并且很兴奋)在Android编程中,这是我的问题:我正在使用我的Android手机和微控制器构建项目.微控制器有一个距离传感器并传输其值.我已经设法连接到微控制器并发送正确的信号,但我无法获得距离测量或其他任何东西.应用程序不会崩溃或任何它不会从微控制器获取数据(我的计算机从微控制器获取数据(数据是字符串)).我的Android应用程序的代码是这样的:
公共类Accelerometer扩展Activity {
// Intent request codes
private static final int REQUEST_CONNECT_DEVICE = 1;
private static final int REQUEST_ENABLE_BT = 2;
private static final int RECIEVE_MESSAGE = 3;
// Program variables
private byte microcOut;
private boolean ledStat;
private boolean connectStat = false;
private Button btnled;
private Button connect_button;
private TextView yAccel, xAccel, incoming;
protected static final int MOVE_TIME = 80;
private long lastWrite = 0;
OnClickListener myClickListener;
ProgressDialog myProgressDialog;
private Toast failToast;
private Handler mHandler,h;
private StringBuilder sb = new …Run Code Online (Sandbox Code Playgroud) 我已经有一段时间了解如何使用我的atmega32以快速pwm模式控制电机(控制其速度).我需要使用8位Timer0,因为我对其他计数器有其他用途.我想我知道如何为此任务初始化计时器:
void initial_io (void){
DDRC = 0xFF;
DDRB = 0xFF;
PORTA = (1<<PA4)|(1<<PA5);
TCCR0 = (1<<WGM01)|(1<<WGM00); // PWM mode : Fast PWM.
TCCR0 = (1<<CS02)|(1<<CS00); // PWM clock = CPU_Clock/1024
}
Run Code Online (Sandbox Code Playgroud)
但问题就来了.我根本不知道接下来该做什么,在我的主要做什么.
我的确切项目是用加速驾驶遥控车.因此,当我从汽车要求前进时,它必须从固定加速度的停止加速到最大速度.我不知道任何大会,所以如果你能帮助我,请在C中做.任何帮助将不胜感激.
我在网上找到了这部分代码,关于如何在atmega32上初始化USART。它适用于我的应用程序,但我想更好地理解它。
void USART_initial (void){
#define BAUD 9600 // We set the desired baud rate( here we set it at 9600bps)
#include <util/setbaud.h> //
UBRRH = UBRRH_VALUE;
UBRRL = UBRRL_VALUE;
#if USE_2X
UCSRA |= (1 << U2X);
#else
UCSRA &= ~(1 << U2X);
#endif
UCSRB = (1<<RXEN)|(1<<TXEN); // Enable transmitter/receiver.
UCSRC = (1<<URSEL)|(1<<UCSZ0)|(1<<UCSZ1); // Character size : 8 bit
Run Code Online (Sandbox Code Playgroud)
我的问题是 UBRRH 和 UBRRL 寄存器的确切用途是什么,为什么我需要使用它们?
非常感谢您提前
我正在开发一个读取来自加速度计的数据的应用程序,我想将它们保存在 .txt 文件中,以便我以后可以处理它们。
到目前为止,我已经能够获得读数并只保存一个读数,因为据我所知,我总是创建一个新文件来覆盖以前存在的文件。但我想要的是从我按下开始按钮的那一刻起,直到按下停止按钮,所有的测量值。
这是我正在使用的代码:
public class MainActivity extends AppCompatActivity implements SensorEventListener, View.OnClickListener {
private SensorManager mSensorManager;
private Sensor mAccelerometer;
private Button bStart, bStop;
float[] acceleration = new float[3];
private String mString;
MyFile file = new MyFile(this);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bStart = (Button)findViewById(R.id.start);
bStop = (Button)findViewById(R.id.stop);
mSensorManager=(SensorManager)getSystemService(SENSOR_SERVICE);
mAccelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
bStart.setOnClickListener(this);
bStop.setOnClickListener(this);
bStart.setEnabled(true);
bStop.setEnabled(false);
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {}
public final void onSensorChanged(SensorEvent event){
if(event.sensor.getType() == Sensor.TYPE_ACCELEROMETER){
acceleration[0] = event.values[0];
acceleration[1] …Run Code Online (Sandbox Code Playgroud) android ×2
atmega ×2
atmel ×1
bluetooth ×1
c ×1
file-io ×1
inputstream ×1
motordriver ×1
pwm ×1
serial-port ×1
textview ×1
usart ×1