#include #include #include #include #include #include int main(void) { unsigned char val; if (ioperm(0xA45, 1, 1) < 0 || ioperm(0xA46, 1, 1) < 0 || ioperm(0xEB, 1, 1) < 0) { perror("Failed to request I/O port permission"); return 1; } outb(0x00,0xA45); outb(inb(0xA46) | 0x40, 0xA46);//update VBAT outb(0x00,0xEB); outb(0x00,0xEB); outb(0x00,0xEB); outb(0x28,0xA45); val = inb(0xA46);//read VBAT printf("VBAT value = %dmv\n", val * 2 * 11); }