Professional Documents
Culture Documents
Codemau
Codemau
/*
* ************************************Chuong trinh bat tat theo thu tu 3 LED
*/
// thu vien nhu tren
//Chuong trinh chinh
int main(void) {
/*
***************************************** Chuong trinh dung nut nhan bat tat
1 LED
*/
//thu vien nhu tren
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();}