2016年10月13日 星期四

在Android上繪出折線圖、條狀圖、圓餅圖


要在Android上畫圖,這次選擇了AChartEngine,

jar下載 -> http://code.google.com/p/achartengine/downloads/detail?name=achartengine-1.0.0.jar&can=2&q=



配置自己要的位置做一個linearlayout, 就可以把圖放進去想要的地方
View chart = ChartFactory.getLineChartView(this, dataset, renderer);
layout.addView(chart,new LayoutParams(LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT));

http://cheng-min-i-taiwan.blogspot.tw/2012/09/android.html

http://cheng-min-i-taiwan.blogspot.tw/2013/09/android.html

Android Studio 無顯示layout預覽圖原因

先前裝1.3.1版Android Studio,

在對應到SDK21之後常會有無法顯示預覽圖的情況

更新版本到2.2.1就改善了,而且現在不只有實際的Layout

還有一個虛擬的配置圖,可以看到重疊的部分等等的

2016年10月6日 星期四

PIC16LF1782 終於搞定ADC

換了一顆PIC之後順遂多啦!

原來FVR功能就只是拿來當參考電壓,之前搞得太複雜了

網路狀態會影響MPLAB X 3.40開啟的失敗

   uint16_t ADCResult,TM;
    uint8_t adhundreds, adtens, adones, adoneth, adtenth;
    double VTao;
typedef unsigned char uint8_t;

void USART_putstring(char* StringPtr){
    while(*StringPtr != 0x00){
     EUSART_Write(*StringPtr);
     StringPtr++;}
}

void get_temperature()
{
    char charADC[8];

   ADCResult = 0x0000;
   ADCResult = ADC_GetConversion(channel_AN4);
   ADCResult &= 0x0FFF;
 
 
 
//    sprintf(charADC,"%u",ADCResult);
//    USART_putstring("ADCResult AN4 = ");
//    USART_putstring(charADC);
//    USART_putstring("\r\n");

    VTao = ADCResult*0.5;
//    sprintf(charADC,"%d",VTao);
//    USART_putstring("VTao = ");
//    USART_putstring(charADC);
//    USART_putstring("\r\n");
   
    TM=211048.6 - ( 192.1 *  VTao);
    adtens = TM/10000;
    adtens = adtens%10;
   
    adones = TM/1000;
    adones = adones%10;
   
    adoneth = TM/100;
    adoneth = adoneth%10;
   
    adtenth = TM/10;
    adtenth = adtenth%10;
   
    adhundreds = TM;
    adhundreds = adhundreds%10;

    sprintf(charADC,"%d%d.%d%d%d",adtens,adones,adoneth,adtenth,adhundreds);
    USART_putstring(charADC);
//    USART_putstring("\r\n");
}


/*
                         Main application
 */
void main(void) {
    SYSTEM_Initialize();
    while (1) {
        get_temperature();
        __delay_ms(500);
    }
}

搞定了硬體方面,現在要開始搞App囉

BluetoothLeScanner.startScan with Android 5 or later

要多一個 permission

<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />



LOLLIPOP之後的要使用startScan();

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    mBluetoothAdapter.startScan();
} else {
    mBluetoothAdapter.startLeScan(mLeScanCallback);
}

2016年9月20日 星期二

2B楷模頒獎

待補

PIC12LF1572 ADC FVR

PIC12的ADC使用非常多細節需要注意

也在MircoChip開了一個討論串

http://www.microchip.com.tw/modules/newbb/viewtopic.php?start=0&topic_id=19496&viewmode=compact&order=ASC


若用12bits的ADC,則可以精準制小數五位

ADC12 Result (decimal) mV Degree Celsius Current Value Degree Celsius Moving Average
2643968.131925.1942425.19424
2643968.131925.1942425.19424
2642967.765625.2649325.21781
2642967.765625.2649325.22959
2643968.131925.1942425.22252
2644968.498225.1235625.20603
2642967.765625.2649325.21444

2016年8月29日 星期一

Uint8 Uint16 Uint32...


Unsigned:表示無號,沒有負號,所以其範圍為正值
Singed:表示有號,有負號(一般沒有特別指名為 Unsigned皆為Singed)

uint80 to 255Unsigned 8-bit integer
uint160 to 65,535Unsigned 16-bit integer
uint320 to 4,294,967,295Unsigned 32-bit integer
uint640 to 18,446,744,073,709,551,615Unsigned 64-bit integer