Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
4 Flowchart
1.4.1 LED Menyala
START
# include DrvGPIO.h
# include DrvSYS.h
UNLOCKREG()
DrvSYS_ SetOscCtrl(E_SYS_XTL12M,1);
DrvSYS_ SelectHCLKSource(0);
LOCKREG();
Yes
while(1) DrvGPIO_ ClrBit(E_ GPC, 12);
No
END
1.4.2 LED Berkedip
START
# include DrvGPIO.h
# include DrvSYS.h
UNLOCKREG()
DrvSYS_ SetOscCtrl(E_SYS_XTL12M,1);
DrvSYS_ SelectHCLKSource(0);
LOCKREG();
Yes
while(1) DrvGPIO_ SetBit(E_ GPC, 12);
No
END
1.4.3 LED Berkedip (Function)
START
START
delay_loop()
UNLOCKREG() i=0;
DrvSYS_SetOscCtrl(E_SYS_XTL12M,1); i++
No
i<4;
DrvSYS_Delay(5000);
Yes
j=0;
DrvSYS_SelectHCLKSource(0);
j++
LOCKREG();
Yes
j<25000;
DrvSYS_SetIPClock(E_SYS_HCLK_DIV,0);
No
int i=0;
END
delay_loop()
i=12;
i++
Yes
i<16; DrvGPIO_Open(E_GPC, i, E_IO_OUTPUT);
No
delay_loop();
DrvGPIO_ClrBit(E_GPC, 12);
delay_loop();
No Yes
END while(1) DrvGPIO_SetBit(E_GPC, 12);
1.4.4 LED RGB
START
START delay_loop()
#include DrvGPIO.h
#include DrvSYS.h uint32_t i,j;
UNLOCKREG()
i=0;
DrvSYS_SetOscCtrl(E_SYS_XTL12M,1);
i++
DrvSYS_Delay(5000);
No
i<4;
DrvSYS_SelectHCLKSource(0);
Yes
j=0;
LOCKREG();
j++
DrvSYS_SetIPClock(E_SYS_HCLK_DIV,0);
Yes
j<100000;
int i=0;
No
i=12;
i++ END
delay_loop()
Yes
i<16; DrvGPIO_Open(E_GPC, i, E_IO_OUTPUT);
No
delay_loop();
No
while(1)
DrvGPIO_SetPortBits(E_GPA, 0x0000);
Yes
END
2.4 Flowchart
2.4.1 Seven Segment (Counter1)
START
START
delay_ loop()
i=0;
UNLOCKREG()
i++
DrvSYS_ SetOscCtrl(E_ SYS_ XTL12M,1);
No
i<3;
j++
LOCKREG(); Yes
j< 100000;
No
while(1)
Yes
i=0;
i++
No
i<16
Yes
delay_ loop();
END
2.4.2 Seven Segment (Pindah Kolom)
START
START
delay_loop()
i=0;
UNLOCKREG()
i++
DrvSYS_SetOscCtrl(E_SYS_XTL12M,1);
No
i<3;
DrvSYS_Delay(5000);
Yes
j=0;
DrvSYS_SelectHCLKSource(0);
j++
LOCKREG(); Yes
j<100000;
DrvSYS_SetIPClock(E_SYS_HCLK_DIV,0); No
No
while(1)
Yes
j=0;
i=0;
i++
No
i<16
j++;
Yes
close_seven_segment();
delay_loop();
Yes
if (j==4) j=0;
No
show_seven_segment(j,i);
END
2.4.3 Seven Segment (Counter0->9999)
START
START delay_loop()
i=0;
UNLOCKREG()
i++
DrvSYS_SetOscCtrl(E_SYS_XTL12M,1); No
i<5;
DrvSYS_Delay(5000); Yes
j=0;
DrvSYS_SelectHCLKSource(0);
j++
LOCKREG(); Yes
j<1000;
No
DrvSYS_SetIPClock(E_SYS_HCLK_DIV,0);
No value++; value=0;
while(1)
No
Yes
Yes
if (value==9999)
digit = (value/1000 %10);
close_seven_segment(); delay_loop();
show_seven_segment(3,digit);
close_seven_segment();
delay_loop(); show_seven_segment(0,digit);
close_seven_segment(); delay_loop();
show_seven_segment(2,digit);
close_seven_segment();
delay_loop(); show_seven_segment(1,digit);
END
3.4 Flowchart
3.4.1 Keypad + Seven Segment
START
#include DrvGPIO.h
#include DrvSYS.h
#include "Seven_Segment.h"
#include"ScanKey.h"
UNLOCKREG()
DrvSYS_SetOscCtrl(E_SYS_XTL12M,1);
DrvSYS_Delay(5000);
DrvSYS_SelectHCLKSource(0);
LOCKREG();
DrvSYS_SetIPClock(E_SYS_HCLK_DIV,0);
OpenKeyPad();
int8_t _keypressed;
No
while(1)
Yes
_keypressed = Scankey();
show_seven_segment(0,_keypressed);
DrvSYS_Delay(5000);
close_seven_segment();
END
3.4.2 Keypad sebagai Trigger
START
DrvSYS_ SelectHCLKSource(0);
UNLOCKREG()
DrvSYS_ Delay( 5000);
int8_ t _ keypressed;
DrvSYS_ SetOscCtrl(E_SYS_XTL12M,1);
No
while(1)
Yes
_ keypad = Scankey();
No No
if(_ keypad==1) if(_ keypad==2)
Yes Yes
int i=0 , j=0 , k=0; int i=0 , j=3 , k=0;
i=0; i=0;
i++ i++
No No
i<16; i<16;
Yes Yes
No No
if(i>0) if(i>0)
No j++; No J--;
Yes Yes
k=(i+1)%4; if(k==0) k=(i+1)%4; if(k==0)
Yes Yes
END
4.4 Flowchart
4.4.1 LCD
START
#include DrvGPIO.h
#include DrvSYS.h
#include "LCD_Driver.h"
UNLOCKREG()
DrvSYS_SetOscCtrl(E_SYS_XTL12M,1);
DrvSYS_Delay(5000);
DrvSYS_SelectHCLKSource(0);
LOCKREG();
DrvSYS_SetIPClock(E_SYS_HCLK_DIV,0);
Initial_panel();
clr_all_panel();
print_lcd(0, "Praktikum");
print_lcd(1, "Mikrokontroler");
print_lcd(2, "ARM Cortex");
print_lcd(3, "uC M0 32 Bit");
Praktikum
Mikrokontroler
ARM Cortex
uC M0 32 Bit
Yes
while(1)
No
END
4.4.2 LCD dan Keypad
START
#include DrvGPIO.h
#include DrvSYS.h
#include "LCD_Driver.h"
#include "ScanKey.h"
UNLOCKREG()
DrvSYS_SetOscCtrl(E_SYS_XTL12M,1);
DrvSYS_Delay(5000);
DrvSYS_SelectHCLKSource(0);
LOCKREG();
DrvSYS_SetIPClock(E_SYS_HCLK_DIV,0);
DrvGPIO_Open(E_GPD,14,E_IO_OUTPUT);
DrvGPIO_ClrBit(E_GPD,14);
PraktikuM uC
ARM Cortex
M0 32 Bit
Key Pressed: char getKeyPressed=Scankey();
No Yes
END while(1)
4.4.3 LCD Draw
START
#include DrvGPIO.h
#include DrvSYS.h
#include "LCD_Driver.h"
UNLOCKREG()
DrvSYS_SetOscCtrl(E_SYS_XTL12M,1);
DrvSYS_Delay(5000);
DrvSYS_SelectHCLKSource(0);
LOCKREG();
DrvSYS_SetIPClock(E_SYS_HCLK_DIV,0);
DrvGPIO_Open(E_GPD,14,E_IO_OUTPUT);
i=0;
DrvGPIO_ClrBit(E_GPD,14); i++
Yes
i<=(128*8); b[i]=0x0;
Initial_panel();
clr_all_panel();
No
b[0]=0x3c;
char b[128*8]; b[1]=0x42;
unsigned int i; b[2]=0x8d;
b[3]=0xa1;
b[4]=0xa1;
b[5]=0x8d;
b[6]=0x42;
b[7]=0x3c;
Yes
No
END while(1) draw_LCD(b);
5.4 Flowchart
START
#include "stdio.h"
#include "DrvADC.h"
#include "DrvSYS.h"
#include "DrvGPIO.h" START
#include "LCD_Driver.h"
AdcIntCallback()
DrvSYS_SetOscCtrl(E_SYS_XTL12M,1);
clr_all_panel();
print_lcd(0, temp);
DrvSYS_Delay(5000); DrvSYS_Delay(500000);
END
DrvSYS_SelectHCLKSource(0);
AdcIntCallback()
LOCKREG();
DrvSYS_SetIPClock(E_SYS_HCLK_DIV,0);
Initial_panel();
clr_all_panel();
DrvGPIO_Open(E_GPA,7,E_IO_INPUT);
DrvGPIO_Open(E_GPD,14,E_IO_OUTPUT);
DrvGPIO_ClrBit(E_GPD,14);
DrvADC_Open
(ADC_SINGLE_END, ADC_CONTINUOUS_OP,
0x80, EXTERNAL_12MHZ, 5);
DrvADC_ConfigADCChannel7(EXTERNAL_INPUT_SIGNAL);
DrvADC_StartConvert();
Yes
No
DrvADC_EnableADCInt(AdcIntCallback, 0); while(1) END