Sei sulla pagina 1di 13

1.

4 Flowchart
1.4.1 LED Menyala

START

# include DrvGPIO.h
# include DrvSYS.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_ GPC, 12 , E_IO_ OUTPUT);

DrvSYS_ Delay( 100000);

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_ Delay( 5000);

DrvSYS_ SelectHCLKSource(0);

LOCKREG();

DrvSYS_ SetIPClock(E_SYS_ HCLK_DIV,0);


DrvGPIO_ Open(E_ GPC, 12 , E_IO_ OUTPUT);

DrvSYS_ Delay( 100000);

DrvGPIO_ ClrBit(E_ GPC, 12);

DrvSYS_ Delay( 100000);

Yes
while(1) DrvGPIO_ SetBit(E_ GPC, 12);

No

END
1.4.3 LED Berkedip (Function)

START
START
delay_loop()

#include DrvGPIO.h uint32_t i,j;


#include DrvSYS.h

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

DrvGPIO_SetPortBits(E_GPA, 0x0000); delay_loop();

delay_loop(); DrvGPIO_SetPortBits(E_GPA, 0x0000);

DrvGPIO_SetPortBits(E_GPA, 0x0000); delay_loop();

delay_loop(); DrvGPIO_SetPortBits(E_GPA, 0x0000);

DrvGPIO_SetPortBits(E_GPA, 0x0000); delay_loop();

delay_loop(); DrvGPIO_SetPortBits(E_GPA, 0x0000);

END
2.4 Flowchart
2.4.1 Seven Segment (Counter1)
START
START
delay_ loop()

# include DrvGPIO.h uint32_t i,j;


# include DrvSYS.h
# include " Seven_ Segment.h"

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

int i=0; END


delay_ loop()

No
while(1)

Yes

i=0;

i++

No
i<16

Yes

close_ seven_ segment();

show_ seven_ segment(0,i);

delay_ loop();

END
2.4.2 Seven Segment (Pindah Kolom)

START
START
delay_loop()

#include DrvGPIO.h uint32_t i,j;


#include DrvSYS.h
#include "Seven_Segment.h"

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

int i=0, j=0; END


delay_loop()

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()

#include DrvGPIO.h uint32_t i,j;


#include DrvSYS.h
#include "Seven_Segment.h"

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);

int digit=0, value=0; END


delay_loop()

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);

digit = (value/100 %10); digit = (value %10);

close_seven_segment(); delay_loop();
show_seven_segment(2,digit);
close_seven_segment();
delay_loop(); show_seven_segment(1,digit);

digit = (value/10 %10);

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_ SetIPClock(E_SYS_ HCLK_DIV,0);


# include DrvGPIO.h
# include DrvSYS.h
# include" Seven_ Segment.h"
LOCKREG();
# include" ScanKey.h"
OpenKeyPad();

DrvSYS_ SelectHCLKSource(0);

UNLOCKREG()
DrvSYS_ Delay( 5000);
int8_ t _ keypressed;

DrvSYS_ SetOscCtrl(E_SYS_XTL12M,1);

No
while(1)

Yes

close_ seven_ segment();

_ 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

close_ seven_ segment(); close_ seven_ segment();

show_ seven_ segment(j,i); show_ seven_ segment(j,i);

DrvSYS_ Delay( 500000); DrvSYS_ Delay( 500000);

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);

OpenKeyPad(); Show_Word(3, 12, 48 + getKeyPressed);


Initial_panel();
clr_all_panel();

Show_Word(3, 12, 32);


print_lcd(0, "Praktikum uC");
print_lcd(1, "ARM Cortex");
Yes
print_lcd(2, "M0 32 Bit"); No
print_lcd(3, "Key Pressed:");
if(!getKeyPressed)

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()

uint8_t gu8AdcIntFlag; u16ConversionData = DrvADC_GetConversionData(7);


uint16_t u16ConversionData;
char temp[10];

UNLOCKREG() sprintf(temp,"ADC7 : %d",u16ConversionData);

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

Potrebbero piacerti anche