Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "lpc2148.h"
- #define CCLK 14745600
- #define PCLK (CCLK/4)
- #define SEK (CCLK/4)
- #define MSEK SEK/1000
- #define BAUDRATE9600 (CCLK/4/16/9600) //9600 brzina
- #define LED1 1<<5
- #define LED2 1<<6
- #define LED3 1<<7
- void initGPIO(void);
- void initPCB(void);
- void initUART(void);
- void startTIMER(void);
- U8 Rx;
- int main()
- {
- initGPIO();
- initPCB();
- initUART();
- startTIMER();
- while(1)
- {
- if(U0LSR & 0x1)
- {
- Rx=U0RBR;
- // if(Rx==0x35){
- // IOSET0|=LED1;
- // IOCLR0|=LED2;
- // IOCLR0|=LED3;}
- // else if (Rx==0x36){
- // IOSET0|=LED2;
- // IOCLR0|=LED1;
- // IOCLR0|=LED3;}
- // else if (Rx==0x37)
- // {IOSET0|=LED3;
- // IOCLR0|=LED1;
- // IOCLR0|=LED2;}
- // else {
- // IOCLR0|=LED1;
- // IOCLR0|=LED2;
- // IOCLR0|=LED3;
- }
- // U0THR=Rx; //echo
- if (Rx=='1'){
- if(T0TC>=SEK)
- {
- startTIMER();
- IOPIN0^=LED1;
- } }
- else {
- IOCLR0=LED1;
- startTIMER();
- }
- }
- }
- void initGPIO(void)
- {
- IODIR0|=LED1;
- IODIR0|=LED2;
- IODIR0|=LED3;
- }
- void initPCB(void)
- {
- PINSEL0=0x5;
- }
- void initUART(void)
- {
- U0IER=0; //bez interapta
- U0LCR|=0x3; // 8 informacionih bitova
- U0LCR|=0x80; //pristup divisor registru (za brzinu)
- U0DLM=0x0;
- U0DLL=BAUDRATE9600;
- U0LCR&=0xFFFFFF7F; // 0111 1111 zatvorili divisor registar
- }
- void startTIMER(void)
- {
- T0TCR=0x3;
- T0TCR=0x1;
- }
- '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
- #include "lpc2148.h"
- #include <math.h>
- #define CCLK 14745600
- #define SEK (CCLK/4)
- #define FR 100
- #define BROD 80 //30 //broj odbiraka
- #define BRODS 50
- #define DELTA (SEK/FR/BROD) //broj koji treba da cekamo u timeru
- void startTIMER(void);
- void initPCB(void);
- void rampa(void);
- void sinusoida(void);
- void zubci(void);
- U16 odbirci[BROD]; //[BRODS]
- U16 brojac=0;
- int main()
- {
- initPCB();
- startTIMER();
- //rampa();
- //sinusoida();
- zubci();
- while(1)
- {
- if(T0TC>DELTA)
- {
- startTIMER();
- DACR=odbirci[brojac]<<6;
- brojac++;
- if(brojac==BROD) //[BRODS]
- {
- brojac=0;
- }
- }
- }
- return 0;
- }
- void startTIMER(void)
- {
- T0TCR=0x3;
- T0TCR=0x1;
- }
- void initPCB(void)
- {
- PINSEL1|=(1<<19);
- }
- void rampa(void)
- {
- //int i;
- for(int i=0;i<BROD;i++)
- {
- odbirci[i]=i*1023/BROD; //max vrednost/broj odbiraka
- }
- }
- void sinusoida(void)
- {
- //int i;
- for(int i=0;i<BROD;i++)
- {
- odbirci[i]=512+511*sin(2*3.14*i/50);
- }
- }
- void zubci(void)
- {
- //int i;
- int j=BROD/2;
- for(int i=0;i<(BROD/2);i++)
- {
- odbirci[i]=i*1023/BROD; //max vrednost/broj odbiraka
- }
- for(int i=(BROD/2);i<BROD;i++)
- {
- odbirci[i]=j*1023/BROD;
- j--;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement