### Waveforms in 8051 Microcontroller

Square Wave
To create a square wave generation using Delay.
let us say we want to construct a 1khz square waveform
the processor instruction cycle of 8051 is 1.085microseconds
so for 1khz (1milli seconds =1/1khz), is 1ms/1.085microseconds = 921.6 (this value is set to the for loop)

#include <reg51.h>
void delay()
{
int i=0;
for(i=0;i<922;i++)
}
void main()
{
P0=0xff;
delay();
P0=0x00;
delay();
}
Sine Wave generation
Since sine wave is plotted in a digital device the number of samples determines the smoothness, hence in this case, more the samples, smoother is the waveform. so a lookup table is been created to get the samples. in the following examples, there are totally 36 samples are taken, starting from 0 degrees to 360 degrees with a step of 10 degrees
 Degrees A = 5 (1+Sin theta) Where 5 is the full scale voltage DAC = 25.6 * A 0 5 128 30 7.5 192 60 9.3 239 90 10 256 etc…like this we need to calculate for 13 samples  with a step of 30degree
// SINE WAVE
#include<reg51.h>
int main()
{
int j;
int c={128,150,172,192,210,226,239,248,254,255,254,248,239,226,210,192,172,150,128,106,84,64,46,30,17,8,2,0,2,8,17,30,46,64,84,106,128};
while(1)
{
for(j=0;j<36;j++)
{
P1=c[j];
}
P1=128;
}}

Triangular Waveform
//Triangular wave
#include<reg51.h>
void main()
{
int j;
while(1)
{
for(j=0;j<256;j++)
{
P0=j;
}
for(j=255;j>0;j=j-2)
{
P0=j;
}
}
}

Saw tooth or Ramp Waveform
// SAWTOOTH WAVE
#include<reg51.h>
void main()
{
int j;
while(1)
{
for(j=0;j<256;j++)
{
P1=j;
}}}

Pulse Width Modulation (PWM) Generation in 8051
#include <reg51.h>
sbit pinpwm = P2^0;
unsigned char PWM = 0;//PWM is the variable to alter the pulse width from 0 to 255
unsigned int temp = 0;
int main(void)
{
P2=0x00;
PWM = 0; //0% duty cycle
//Initialize the timer
TMOD &= 0xF0;
TMOD |= 0x01;

TH0 = 0x00;
TL0 = 0x00;

ET0 = 1;         //enable timer interrupt
EA  = 1;         //enable all interrupts

TR0 = 1;         // Start Timer 0
PWM = 220;       //a duty cycle of 220/256
while(1)
{}
}
// Timer0 ISR
void Timer0_ISR (void) interrupt 1
{
TR0 = 0;    // Stop Timer 0
if(pinpwm)    // if high
{
pinpwm= 0;
temp = (255-PWM); //this is in decimal
TH0  = 0xFF;
TL0  = 0xFF - temp&0xFF;    //to handle in hex
}
else         // else if low
{
pinpwm = 1;
temp = PWM;
TH0  = 0xFF;
TL0  = 0xFF - temp&0xFF;
}
TF0 = 0;     // Clear the interrupt flag
TR0 = 1;     // Start Timer 0
}

Here the PWM Waveform is generated with a duty cycle of 220/256(86%) duty cycle. PWM are advantageous in controlling the power to machines be reducing the supply voltage by altering the pulse width.
Duty Cycle means, the time percentage for which the duty is done. in the image show above, the high waveform for 86% and low waveform (0) for 14%.

### Implementing a new system call in Kernel version 2.6.32

A system call is used by application or user programs to request service from the operating systems. Since the user programs does not have direct access to the kernel whereas the OS has the direct access. OS can access the hardware through system calls only. The following files has to be modified for implementing a system call /usr/src/linux-2.6.32.5/arch/x86/kernel/syscall_table_32.S /usr/src/linux-2.6.32.5/arch/x86/include/asm/unistd_32.h /usr/src/linux-2.6.32.5/include/linux/syscalls.h /usr/src/linux-2.6.32.5/Makefile New set of files to be created Create a new directory newcall/ inside the path “ /usr/src/linux-2.6.32.5/ ” Create new files Makefile, newcall.c and put them in the /usr/src/linux-2.6.32.5/newcall/ folder Create new user files (in any folder of Linux) to test the system call testnewcall.c, testnewcall.h (created in /home/pradeepkumar ) syscall_table_32.S Find the file /usr/src/linux-2.6.32.5/arch/x86/kernel/syscall_tab

### How to Access MOODLE in Intranet and Internet

When Moodle is accessed either in Intranet or internet, there will not be any issue. But occasions when the MOODLE Site has to be accessed both in the intranet and in the Internet, here is a simple trick Server Used: IBM Blade Servers Operating system: Windows Server 2008 Moodle Version: 2.4 WAMP Server is used. Number of Users: 3000 (Students) + 200 (Faculty) Open the config.php from ~/moodle/config.php include these lines \$CFG->wwwroot = 'http://'.\$server_id.'/vitcc'; \$CFG->dataroot  = 'C:\\wamp\\moodledata'; before the following line \$CFG->directorypermissions = 07xx; Restart the WAMP Server and you can Check MOODLE Site both in Internet and Intranet. The above Image tells the intranet Link and the internet link can be opened outside the campus network

### Electrical Machine Design (equations)

Factors DC Machine Transformers Induction Machines Synchronous Machines Output Equation P a =C o D 2 Ln, where Pa=P/h for generators, Pa=P for motors For Single Phase Q=2.22 f B m A i K w A w d 10 -3 For Three Phase Q=3.33 f B m A i K w A w d 10 -3 Q=C o D 2 L n s KVA Input Q= HP * 0.746 / Cos f * h Q=C o D 2 L n s KVA Input Q= HP * 0.746 / Cos f * h For Turbo alternators Q=1.11B av ac K ws V a 2 L 10 -3 /n s Output Coefficient C o =B av ac* 10 -3 where Bav-magnetic loading and ac - electric loading DNA C o =11 K ws B av ac 10 -3 C o =11 K ws B av ac 10 -3 Choice of Magnetic Loading Flux Density in Teeth Frequency of Flux Reversals Size of machine DNA Magnetizing current, Flux Density, Iron loss Iron loss, Stability, Voltage Rating, Parallel Operation, Transient ShortCircuit current