/****MAIN****/ int main(void) { PORTINIT(); /***INICIALIZE OBJECTS***/ FUNC function = FUNCenable(); LCD0 lcd0 = LCD0enable(&DDRA,&PINA,&PORTA); ANALOG analog = ANALOGenable(1, 128, 1, 0); // channel 0 for position TIMER_COUNTER0 timer0 = TIMER_COUNTER0enable(2,2); // for clock TIMER_COUNTER1 timer1 = TIMER_COUNTER1enable(9,0); // PWM positioning relogio=CLOCKenable(12,0,0); LFSM lfsm=LFSMenable(memory,128); //lfsm.input_inic(&lfsm,PINB); /******/ lfsm.inic(&lfsm,PINB,0); int adcvalue; uint8_t alarm; char value[9]; /***Parameters timers***/ timer0.compare(249); timer1.compoutmodeB(2); timer1.compareA(20000); timer1.start(8); timer0.start(64); /**********/ while(TRUE){ //PREAMBLE lcd0.reboot(); //TODO:: Please write your application code lcd0.gotoxy(0,0); lcd0.string(relogio.show()); lcd0.gotoxy(9,0); alarm=relogio.alarm(12,1,0); function.itoa(alarm,value); lcd0.string(value); lcd0.gotoxy(12,0); function.itoa(PINB,value); lcd0.string(value); if(!alarm){ lcd0.gotoxy(0,1); lcd0.string(relogio.show()); }else{ lcd0.gotoxy(0,1); lcd0.string("Alarm"); } lcd0.gotoxy(9,1); function.itoa(lfsm.read(&lfsm,PINB),value); lcd0.string(value); lcd0.gotoxy(12,1); function.itoa(lfsm.read_input(&lfsm),value); lcd0.string(value); } }
void toggle(void) { led1 = !led1; // Relaunch alarm in 10 sec clock.alarm(10, &toggle); }
int main(void) { Systick_Init(); time.hours = 10; time.minutes = 30; time.seconds = 0; clock.set(time); // Alarm set to 10 sec clock.alarm(10, &toggle); while (1) { clock.get(&time); } }
/****MAIN****/ int main(void) { PORTINIT(); /***INICIALIZE OBJECTS***/ FUNC function= FUNCenable(); LCD0 lcd0 = LCD0enable(&DDRA,&PINA,&PORTA); MM74C923 keypad = MM74C923enable(&DDRC,&PINC,&PORTC); ANALOG analog = ANALOGenable(1, 128, 1, 0); // channel 0 for position TIMER_COUNTER0 timer0 = TIMER_COUNTER0enable(2,2); // for clock TIMER_COUNTER1 timer1 = TIMER_COUNTER1enable(9,0); // PWM positioning relogio=CLOCKenable(12,0,0); /******/ char Mode='1'; char keytmp[8]; char analogtmp[8]; char keychar; int adcvalue; uint8_t step=0; /***Parameters timers***/ timer0.compare(249); timer1.compoutmodeB(2); timer1.compareA(20000); timer1.start(8); timer0.start(64); /**********/ while(TRUE){ //PREAMBLE lcd0.reboot(); keypad.activate(); //TODO:: Please write your application code switch(Mode){ case '1': lcd0.gotoxy(0,0); lcd0.string_size(keypad.gets(),5); if(!strcmp(keypad.data(),"")); else strcpy(keytmp,keypad.data()); timer1.compareB(function.trimmer(function.strToInt(keytmp),0,180,450,2450)); break; case '2': lcd0.gotoxy(0,0); adcvalue=analog.read(0); function.itoa(adcvalue,analogtmp); lcd0.string_size(analogtmp,5); timer1.compareB(function.trimmer(adcvalue,0,1023,450,2450)); break; default: lcd0.gotoxy(0,0); lcd0.string_size(keypad.gets(),5); if(!strcmp(keypad.data(),"")); else strcpy(keytmp,keypad.data()); timer1.compareB(function.trimmer(function.strToInt(keytmp),0,1023,450,2450)); break; }; lcd0.hspace(3); lcd0.string(relogio.show()); /***Menu***/ keychar=keypad.getch(); switch(step){ case 0: lcd0.gotoxy(0,1); lcd0.string_size("Menu -> R+1",12); lcd0.hspace(4); switch(keychar){ case 'Q': step=1; break; }; break; case 1: lcd0.gotoxy(0,1); lcd0.string_size("M-1 | A-2 | T-3",15); lcd0.hspace(1); switch(keychar){ case '1': Mode='1'; step=0; keypad.data_clear(); break; case '2': Mode='2'; step=0; keypad.data_clear(); break; case '3': step=2; break; }; break; case 2: step=0; keypad.data_clear(); break; }; } }
int main(int argc, char** argv) { //ҳ������˳��� int arr[__LENGTH__]; srand((unsigned int)time(NULL)); for(auto& i : arr) { //���ҳ�� i = rand() % 100; } //ҳ��� int frame_id; //�������ʹ���û��㷨 LRU LRUManager; //ȱҳ�жϼ��� unsigned int missing_page_lru = 0; //ҳ���û����� unsigned int page_algorithm_lru = 0; //ģ������ cout << "******************** LRU ********************" << endl; for(auto i : arr) { cout << "����ҳ�ţ�" << i << "\t"; switch(LRUManager.requireFrame(i, frame_id)) { case No: cout << "ҳ�����У�ҳ��ţ�"; break; case MissingPage: missing_page_lru++; cout << "ҳ��δ���У�����ҳ����ҳ��ţ�"; break; case MissingPageAndReplace: missing_page_lru++; page_algorithm_lru++; cout << "ҳ��δ���У�ҳ������������ҳ�沢�滻ҳ��ţ�"; break; } cout << frame_id << endl; } cout << "#################### LRU ####################" << endl; //�Ƚ��ȳ��û��㷨 FIFO FIFOManager; //ȱҳ�жϼ��� unsigned int missing_page_fifo = 0; //ҳ���û����� unsigned int page_algorithm_fifo = 0; //ģ������ cout << "******************** FIFO ********************" << endl; for(auto i : arr) { cout << "����ҳ�ţ�" << i << "\t"; switch(FIFOManager.requireFrame(i, frame_id)) { case No: cout << "ҳ�����У�ҳ��ţ�"; break; case MissingPage: missing_page_fifo++; cout << "ҳ��δ���У�����ҳ����ҳ��ţ�"; break; case MissingPageAndReplace: missing_page_fifo++; page_algorithm_fifo++; cout << "ҳ��δ���У�ҳ������������ҳ�沢�滻ҳ��ţ�"; break; } cout << frame_id << endl; } cout << "#################### FIFO ####################" << endl; //������û��㷨 LFU LFUManager; //ȱҳ�жϼ��� unsigned int missing_page_lfu = 0; //ҳ���û����� unsigned int page_algorithm_lfu = 0; //ģ������ cout << "******************** LFU ********************" << endl; for(auto i : arr) { cout << "����ҳ�ţ�" << i << "\t"; switch(LFUManager.requireFrame(i, frame_id)) { case No: cout << "ҳ�����У�ҳ��ţ�"; break; case MissingPage: missing_page_lfu++; cout << "ҳ��δ���У�����ҳ����ҳ��ţ�"; break; case MissingPageAndReplace: missing_page_lfu++; page_algorithm_lfu++; cout << "ҳ��δ���У�ҳ������������ҳ�沢�滻ҳ��ţ�"; break; } cout << frame_id << endl; } cout << "#################### LFU ####################" << endl; //ʱ���û��㷨 CLOCK CLOCKManager; //ȱҳ�жϼ��� unsigned int missing_page_clock = 0; //ҳ���û����� unsigned int page_algorithm_clock = 0; //ģ������ cout << "******************** CLOCK ********************" << endl; for(auto i : arr) { cout << "����ҳ�ţ�" << i << "\t"; switch(CLOCKManager.requireFrame(i, frame_id)) { case No: cout << "ҳ�����У�ҳ��ţ�"; break; case MissingPage: missing_page_clock++; cout << "ҳ��δ���У�����ҳ����ҳ��ţ�"; break; case MissingPageAndReplace: missing_page_clock++; page_algorithm_clock++; cout << "ҳ��δ���У�ҳ������������ҳ�沢�滻ҳ��ţ�"; break; } cout << frame_id << endl; } cout << "#################### CLOCK ####################" << endl; //�Ľ�ʱ���û��㷨 CLOCK2 CLOCK2Manager; //ȱҳ�жϼ��� unsigned int missing_page_clock2 = 0; //ҳ���û����� unsigned int page_algorithm_clock2 = 0; //ģ������ cout << "******************** CLOCK2 ********************" << endl; for(auto i : arr) { cout << "����ҳ�ţ�" << i << "\t"; switch(CLOCK2Manager.requireFrame(i, frame_id, rand() % 2 == 0 ? false : true)) { case No: cout << "ҳ�����У�ҳ��ţ�"; break; case MissingPage: missing_page_clock2++; cout << "ҳ��δ���У�����ҳ����ҳ��ţ�"; break; case MissingPageAndReplace: missing_page_clock2++; page_algorithm_clock2++; cout << "ҳ��δ���У�ҳ������������ҳ�沢�滻ҳ��ţ�"; break; } cout << frame_id << endl; } cout << "#################### CLOCK2 ####################" << endl; //������ cout << "�������ʹ���û��㷨LRU�㷨�����Ʋ���ҳ��ʧЧ" << missing_page_lru << "�Σ����з���ҳ���û�" << page_algorithm_lru << "�Ρ�" << endl; cout << "�Ƚ��ȳ��û��㷨FIFO�㷨�����Ʋ���ҳ��ʧЧ" << missing_page_fifo << "�Σ����з���ҳ���û�" << page_algorithm_fifo << "�Ρ�" << endl; cout << "������û��㷨LFU�㷨�����Ʋ���ҳ��ʧЧ" << missing_page_lfu << "�Σ����з���ҳ���û�" << page_algorithm_lfu << "�Ρ�" << endl; cout << "ʱ���û��㷨CLOCK�㷨�����Ʋ���ҳ��ʧЧ" << missing_page_clock << "�Σ����з���ҳ���û�" << page_algorithm_clock << "�Ρ�" << endl; cout << "�Ľ�ʱ���û��㷨CLOCK2�㷨�����Ʋ���ҳ��ʧЧ" << missing_page_clock2 << "�Σ����з���ҳ���û�" << page_algorithm_clock2 << "�Ρ�" << endl; system("pause"); return 0; }