Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 8

/*

************************************************** Chuong trinh bat tat LED


*/
#include <stdint.h>
#include <stdbool.h>
#include "inc/hw_types.h"
#include "inc/hw_memmap.h"
#include "driverlib/sysctl.h"
#include "driverlib/gpio.h"
//Chuong trinh chinh
int main(void) {
SysCtlClockSet(SYSCTL_SYSDIV_4 | SYSCTL_USE_PLL |
SYSCTL_XTAL_16MHZ | SYSCTL_OSC_MAIN); //De hien ra nhac code ban co
the an ctr+space
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF); //Cau hinh su
dung port F
GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_1); //Cau
hinh dung pin 1 cua port F, chan nay noi voi led do co san tren led
while(1)
{
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1, GPIO_PIN_1);
//Bat LED
SysCtlDelay(1000000); //Delay
GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_1, 0); //Tat
LED
SysCtlDelay(1000000);
}
}

/*
* ************************************Chuong trinh bat tat theo thu tu 3 LED
*/
// thu vien nhu tren
//Chuong trinh chinh
int main(void) {

//Khai bao bien shift co nhiem vu dich bit


uint8_t shift = GPIO_PIN_1;
//Khoi tao clock he thong
SysCtlClockSet(SYSCTL_SYSDIV_4 | SYSCTL_USE_PLL |
SYSCTL_XTAL_16MHZ | SYSCTL_OSC_MAIN); //De hien ra nhac code ban co
the an ctr+space
//Kich hoat ngoai vi
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF); //Kich hoat port
F
// Cau hinh output xuat LED
GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_1 |
GPIO_PIN_2 | GPIO_PIN_3); //O day su dung pin 1 2 3 cho 3 led RGB tren kit
while(1)
{
//Bat LED do
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1 |GPIO_PIN_2 |
GPIO_PIN_3, shift);
SysCtlDelay(1000000);//Delay
//Dich bit sang trai voi y nghia bat LED xanh
shift <<= 1;
//Kiem tra neu LED xanh la sang thi quay tro lai LED do
if(shift > GPIO_PIN_3)
shift = GPIO_PIN_1;
}
}

/*
***************************************** Chuong trinh dung nut nhan bat tat
1 LED
*/
//thu vien nhu tren

//Chuong trinh chinh


int main(void) {
//Khoi tao clock he thong
SysCtlClockSet(SYSCTL_SYSDIV_4 | SYSCTL_USE_PLL |
SYSCTL_XTAL_16MHZ | SYSCTL_OSC_MAIN); //De hien ra nhac code ban co
the an ctr+space
//Kich hoat ngoai vi
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF); //Kich hoat port
F
// Cau hinh output xuat LED
GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_1 |
GPIO_PIN_2 | GPIO_PIN_3); //O day su dung pin 1 2 3 cho
3 led RGB tren ki
// Cau hinh input la nut nhan co san tren kit SW1
GPIOPinTypeGPIOInput(GPIO_PORTF_BASE, GPIO_PIN_4); //O day pin
4 cua port F noi voi nut nhan SW1 tren kit
// Cau hinh phim bam
GPIOPadConfigSet( GPIO_PORTF_BASE, GPIO_PIN_4,
GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPU);
while(1)
{
//Kiem tra
if (!GPIOPinRead(GPIO_PORTF_BASE, GPIO_PIN_4))
//Bat LED do
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1 |
GPIO_PIN_2 | GPIO_PIN_3, GPIO_PIN_1);
else
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1 |
GPIO_PIN_2 | GPIO_PIN_3, 0); //Tat LED do
}
}

//******************Chuong trình nhấ n nú t nhấ n thì đổ i led sang theo thứ tự


/ / thư viện như trên
void configSwitch()
{
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);// enable port F
GPIOPinTypeGPIOInput(GPIO_PORTF_BASE,GPIO_PIN_4); // switch2
GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_1|GPIO_PIN_2|
GPIO_PIN_3);// LED RGB
GPIOPadConfigSet( GPIO_PORTF_BASE, GPIO_PIN_4,
GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPU);
}
int main(void)
{
uint8_t ui8LED = 2;
SysCtlClockSet(SYSCTL_SYSDIV_4|SYSCTL_USE_PLL|
SYSCTL_XTAL_16MHZ|SYSCTL_OSC_MAIN);
configSwitch();

while(1)
{
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1|GPIO_PIN_2|
GPIO_PIN_3,ui8LED);
if(GPIOPinRead(GPIO_PORTF_BASE,GPIO_PIN_4) == 0)
{
SysCtlDelay(50000);
if(GPIOPinRead(GPIO_PORTF_BASE,GPIO_PIN_4) == 0)
{
if(ui8LED == 8)
{ui8LED = 2; }
else
{ ui8LED *=2; }
}
}
}
}

//*******************timer va ngat: ham main dieu khien led2 nhấ p nhá y, ngắ t
timer điều khiển led 1 nhấ p nhá y
//thư viện như trên thêm
#include "driverlib/timer.h"
static void Timer0ISR()
{ TimerIntClear(TIMER0_BASE, TIMER_TIMA_TIMEOUT);
if(GPIOPinRead(GPIO_PORTF_BASE, GPIO_PIN_1))
{
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1, 0);
}
else
{
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1, 2);
}
}
void initTimer()
{
SysCtlPeripheralEnable(SYSCTL_PERIPH_TIMER0);// enable timer 0
TimerConfigure(TIMER0_BASE,TIMER_CFG_PERIODIC);// TIMER 0 o che
do lap lai
TimerLoadSet(TIMER0_BASE, TIMER_A, SysCtlClockGet() - 1); // timer A
dem xuong 1s
TimerIntRegister(TIMER0_BASE, TIMER_A, &Timer0ISR);// dang ky ngat
timer 0
IntEnable(INT_TIMER0A); // bat ngat timer 0
TimerIntEnable(TIMER0_BASE,TIMER_TIMA_TIMEOUT); // su kien ngat:
timer0 tran
TimerEnable(TIMER0_BASE,TIMER_A);// cho phep dung timer
}
void initgpio()
{
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);// enable GPIO F
GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_1|GPIO_PIN_2);
// PF1 OUTPUT
}
int main(void)
{
SysCtlClockSet(SYSCTL_SYSDIV_4|SYSCTL_USE_PLL|SYSCTL_XTAL_16MHZ|
SYSCTL_OSC_MAIN);
initTimer();
initgpio();
IntMasterEnable(); // cho phep procesor phuc vu ngat
while(1)
{
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_2,4); //Bat LED
SysCtlDelay(SysCtlClockGet()); //Delay
GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_2, 0); //Tat LED
SysCtlDelay(SysCtlClockGet());

}
return 0;}

//**********************Code
c************************************************
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<math.h>
int strLEN(char *x)
{
int i = 0 ;
while(*(x + i)) { i += 1;}
return i ;
}
int mystrtoint(char *str)
{ int j= 0;
int sum = 0;
for(int i = 0; i < strLEN(str); i++){
switch(*(str + i)){
case '0':sum = sum + 0*pow(10, strLEN(str)-1-i); break;
case '1':sum = sum + 1*pow(10, strLEN(str)-1-i); break;
case '2':sum = sum + 2*pow(10, strLEN(str)-1-i); break;
case '3':sum = sum + 3*pow(10, strLEN(str)-1-i); break;
case '4':sum = sum + 4*pow(10, strLEN(str)-1-i); break;
case '5':sum = sum + 5*pow(10, strLEN(str)-1-i); break;
case '6':sum = sum + 6*pow(10, strLEN(str)-1-i); break;
case '7':sum = sum + 7*pow(10, strLEN(str)-1-i); break;
case '8':sum = sum + 8*pow(10, strLEN(str)-1-i); break;
case '9':sum = sum + 9*pow(10, strLEN(str)-1-i); break;
break;
default : j = -1;
break;
}
}
if(j == 0)
{return sum;}
else return -1;
}
int main()
{
char chuoi[100];
printf("nhap chuoi: ");
gets(chuoi);
printf("chuoi vua nhap: %s",chuoi);
printf("\nso phan tu cua chuoi: %d\n",strLEN(chuoi));
if(mystrtoint(chuoi) == -1)
{
printf("\n-1");
}
else
{
printf("\n%d",mystrtoint(chuoi));}
getch();
return 0;
}
// ham copy
int strcopy(char *dest, char *src)
{
int i = 0;
while( *(src + i) != '\0') {
*(dest + i) = *(src + i);
i += 1;
}
*(dest + i) = '\0';
return 0;
}

//*************systick*************************
Void initsystick()
{ SysTickPeriodSet(SysCtlClockGet()); // cai gia tri
SysTickIntRegister(&SysTick_ISR); // cai bao chuong trinh ngat
SysTickIntEnable();
SysTickEnable();
IntMasterEnable();}

You might also like