Exemplo n.º 1
0
int main() {
    int n;
    short vref = *(short*)((void*)0x1FFFF7BA);
    REG_L(RCC_BASE, RCC_AHBENR) |= (1 << 17); // port A clock
    REG_L(RCC_BASE, RCC_AHB2ENR) |= (1 << 9); // ADC clock
    
    REG_L(GPIOA_BASE, GPIO_MODER) |= 1;
    
    uartEnable();
    adcEnable();
    REG_L(ADC_BASE, ADC_CHSELR) |= (1 << 5); // ADC from PA5
    REG_L(ADC_BASE, ADC_CHSELR) |= (1 << 17); // ADC from vrefint
    
    while(1) {
        REG_L(GPIOA_BASE, GPIO_BSRR) |= (1 << 0);
        sends("on\n");
        adcRead(2);
        sends("adc=0x");
        sendHex(adc[0], 3);
        n = (intDiv(3300 * (int) adc[0], adc[1]) * vref) >> 12;
        sends(", V=");
        sendDec(n);
        sends("mv, T=");
        sendDec(intDiv(((n - 2980) + 5), 10) + 25);
        sends("\n");
        n=250000; while(--n);
        REG_L(GPIOA_BASE, GPIO_BSRR) |= (1 << 16);
        sends("off\n");
        n=1000000; while(--n);
    }    
}
Exemplo n.º 2
0
void printSamples(void) {
    int i;
    for (i=0; i<SAMPLE_COUNT; i++) {
        Sample* localSample = &samples[i];
        sendDec(localSample->pidTime);
        sendDec(localSample->positionLeft);
        sendDec(localSample->positionRight);
     }
    println();
}
Exemplo n.º 3
0
void printDistances() {
    int i;
    for (i = 0; i < HISTORY_SIZE; i++) {
        sendDec(distances[i]);
        println();
    }
}
int receiverZigbeeTest(void) {
    /*
    char *macAdresse = "1";
    char *panId = "1620";
    char *channel = "100000";
    char *function = "0";
    char *adresse = "0";
    char *data;
    char receiveChar;
    char valide;
    int toto;
    */
    
    TRISB = 0;
    TRISB = 0;

    // Configure serialBuffer
    Buffer zigbeeBuffer;
    initBuffer(&zigbeeBuffer, SERIAL_PORT_ZIGBEE);
    setAndOpenSerialBuffer(&zigbeeBuffer);

    Buffer debugBuffer;
    initBuffer(&debugBuffer, SERIAL_PORT_DEBUG);
    setAndOpenSerialBuffer(&debugBuffer);

    setSerialBuffer(&debugBuffer);
    putString("Beacon Receiver start rs232\n");

    initPwmForServo(1500);    

    // Initialization of laserDetector
    // Laser 1
    initLaserDetectorStruct(
            LASER_INDEX_1,
            LASER_SERVO_INDEX_1,
            &getLaserPin1,
            SERVO_LASER_1_MAX_LEFT_POSITION_DEFAULT_VALUE, 
            SERVO_LASER_1_MAX_RIGHT_POSITION_DEFAULT_VALUE,
            SHORT_TRACKING_INTERVAL,
            BEACON_SERVO_1_FACTOR,
            BEACON_SERVO_1_INIT_COMPUTE_VALUE,
            BEACON_SERVO_1_ANGLE_DEGREE
    );
    // Laser 2
    initLaserDetectorStruct(
            LASER_INDEX_2,
            LASER_SERVO_INDEX_2,
            &getLaserPin2,
            SERVO_LASER_2_MAX_LEFT_POSITION_DEFAULT_VALUE,
            SERVO_LASER_2_MAX_RIGHT_POSITION_DEFAULT_VALUE,
            SHORT_TRACKING_INTERVAL,
            BEACON_SERVO_2_FACTOR,
            BEACON_SERVO_2_INIT_COMPUTE_VALUE,
            BEACON_SERVO_2_ANGLE_DEGREE
    );

    while (1) {
        int laserIndex;
        for (laserIndex = 0; laserIndex < LASER_COUNT; laserIndex++) {
            detectsLaser(laserIndex);
        }
        delay100us(5);

        char c = handleChar(&debugBuffer, false);
        if (c != 0) {
            putString("---------\n");
            Laser* laser1 = getLaser(LASER_INDEX_1);
            Laser* laser2 = getLaser(LASER_INDEX_2);
    
            printLaserStruct(&debugBuffer, laser1);
            println();
            printLaserStruct(&debugBuffer, laser2);
            clearBuffer(&debugBuffer);

            Point p = getPosition(DISTANCE_BETWEEN_BEACON);
            if (p.x != 0 && p.y != 0) {
                sendDec(p.x);
                putString(", ");
                sendDec(p.y);
                println();
            }    
        }
    }

    /*
    valide = 0;
    while (1) {
        if (U2STAbits.URXDA == 1){
                valide = getc();
                putc1 (valide);
        }
        if (U1STAbits.URXDA == 1){
                valide = getc1();
                putc (valide);
        }
    }
    */
}