چند تا برنامه براتون میزارم که timer (capch) و وقفه است بدون هدر نوشته شده شاید به دردتون خورد..
اطلاعیه
Collapse
No announcement yet.
برنامه با keil for sam7
Collapse
X
-
پاسخ : برنامه با keil for sam7
#include <at91sam7s256.h>
#include "lcd.h"
int status , x , i;
__irq void vaghfe () {
status=AT91C_BASE_TC0->TC_SR;
if ((status&0x1)!=0){
x++;
}
AT91C_BASE_AIC->AIC_EOICR=0;
}
int main (){
AT91C_BASE_PMC->PMC_PCER=0X1<<AT91C_ID_TC0;
AT91C_BASE_TC0->TC_CMR=AT91C_TC_WAVE|AT91C_TC_CLKS_TIMER_DIV5_ CLOCK;
AT91C_BASE_TC0->TC_IER=0X1;
AT91C_BASE_TC0->TC_CCR=AT91C_TC_CLKEN| AT91C_TC_SWTRG;
AT91C_BASE_AIC->AIC_SMR[AT91C_ID_TC0]=0X1<<5;
AT91C_BASE_AIC->AIC_SVR[AT91C_ID_TC0]=(int)vaghfe;
AT91C_BASE_AIC->AIC_IECR=0X1<<AT91C_ID_TC0;
LCD_Init();
while (1){LCD_Clear();
LCD_WriteNumber(x,0 ,0) ;
for (i=0;i<0xfffff;i++);
}
من آن اواره ی بشکسته بالم ز هجرانت بتا رو بر زبانم
منم آن مرغ سگردان تنها پریشان گشته شد یکباره حالم
یا مهدی
دیدگاه
-
پاسخ : برنامه با keil for sam7
#include <at91sam7s256.h>
#include "lcd.h"
int rb,ra,t_puls,a;
int main(){
AT91C_BASE_PMC->PMC_PCER=0X1<<AT91C_ID_TC0;
AT91C_BASE_TC0->TC_CMR= AT91C_TC_CLKS_TIMER_DIV5_CLOCK | AT91C_TC_WAVESEL_UP_AUTO |
AT91C_TC_LDRA_RISING | AT91C_TC_LDRB_FALLING ;
AT91C_BASE_TC0->TC_CCR=AT91C_TC_CLKEN | AT91C_TC_SWTRG ;
AT91C_BASE_PIOA->PIO_PDR=AT91C_PIO_PA0;
AT91C_BASE_PIOA->PIO_BSR=AT91C_PA0_TIOA0;
LCD_Init();
while (1){
while((AT91C_BASE_TC0->TC_SR&(0x1<<6) )==0 ); rb=AT91C_BASE_TC0->TC_RB ; ra=AT91C_BASE_TC0->TC_RA ;
t_puls=(rb-ra)*21.33;
LCD_WriteNumber(t_puls,0 , 0);
for(a=0;a<0xffff;a++);
LCD_Clear();
}
}
من آن اواره ی بشکسته بالم ز هجرانت بتا رو بر زبانم
منم آن مرغ سگردان تنها پریشان گشته شد یکباره حالم
یا مهدی
دیدگاه
-
پاسخ : برنامه با keil for sam7
#include <at91sam7s256.h>
int main (){
AT91C_BASE_PMC->PMC_PCER=0X1<<AT91C_ID_TC0;
AT91C_BASE_TC0->TC_CMR=AT91C_TC_WAVE | AT91C_TC_CLKS_TIMER_DIV5_CLOCK |
AT91C_TC_WAVESEL_UP_AUTO |AT91C_TC_ACPA_CLEAR | AT91C_TC_ACPC_SET ;
AT91C_BASE_TC0->TC_RA=14062;
AT91C_BASE_TC0->TC_RC=46875;
AT91C_BASE_TC0->TC_CCR=AT91C_TC_CLKEN| AT91C_TC_SWTRG;
AT91C_BASE_PIOA->PIO_PDR=AT91C_PIO_PA0;
AT91C_BASE_PIOA->PIO_BSR=AT91C_PA0_TIOA0;
while (1){}
}
من آن اواره ی بشکسته بالم ز هجرانت بتا رو بر زبانم
منم آن مرغ سگردان تنها پریشان گشته شد یکباره حالم
یا مهدی
دیدگاه
-
وقفه
#include <at91sam7s256.h>
#include "LCD.h"
int x,i;
__irq
void vaghfe(){
x++;
AT91C_BASE_AIC->AIC_EOICR=0;
}
int main(){
AT91C_BASE_AIC->AIC_SMR[AT91C_ID_IRQ0]=0X1<<5;
AT91C_BASE_AIC->AIC_SVR[AT91C_ID_IRQ0]= (int)vaghfe;
AT91C_BASE_AIC->AIC_IECR=0X1<< AT91C_ID_IRQ0;
AT91C_BASE_PMC->PMC_PCER= 0X1<<AT91C_ID_IRQ0;
AT91C_BASE_PIOA->PIO_PDR=0X1<<20;
AT91C_BASE_PIOA->PIO_BSR=0X1<<20;
LCD_Init();
while (1) {
LCD_WriteNumber( x,0 , 0);
for (i=0;i<0xfffff;i++);
}
}من آن اواره ی بشکسته بالم ز هجرانت بتا رو بر زبانم
منم آن مرغ سگردان تنها پریشان گشته شد یکباره حالم
یا مهدی
دیدگاه
-
adc
#include <at91sam7s256.h>
#include "LCD.h"
int x,i;
__irq
void vaghfe(){
x++;
AT91C_BASE_AIC->AIC_EOICR=0;
}
int main(){
AT91C_BASE_AIC->AIC_SMR[AT91C_ID_IRQ0]=0X1<<5;
AT91C_BASE_AIC->AIC_SVR[AT91C_ID_IRQ0]= (int)vaghfe;
AT91C_BASE_AIC->AIC_IECR=0X1<< AT91C_ID_IRQ0;
AT91C_BASE_PMC->PMC_PCER= 0X1<<AT91C_ID_IRQ0;
AT91C_BASE_PIOA->PIO_PDR=0X1<<20;
AT91C_BASE_PIOA->PIO_BSR=0X1<<20;
LCD_Init();
while (1) {
LCD_WriteNumber( x,0 , 0);
for (i=0;i<0xfffff;i++);
}
}من آن اواره ی بشکسته بالم ز هجرانت بتا رو بر زبانم
منم آن مرغ سگردان تنها پریشان گشته شد یکباره حالم
یا مهدی
دیدگاه
-
adc
#include <at91sam7s256.h>
#include "lcd.h"
#include "adc.h"
int g,f,y,a,secend,i,min=1;
char lcd[8];
char flag=0;
void main (){
LCD_Init();
adc_init();
AT91C_BASE_RTTC->RTTC_RTMR=0X8000|0X1<<18;
AT91C_BASE_PIOA->PIO_PER=3<<4;
AT91C_BASE_PIOA->PIO_ODR=3<<4;
LCD_WriteChar('*',0, 0);
LCD_WriteString("clock" ,0 , 1) ;
LCD_WriteString("counter" ,0 , 9) ;
LCD_WriteString("Vmeter" ,1 , 1) ;
LCD_WriteString("adc" ,1 , 9) ;
while(1){
if (((AT91C_BASE_PIOA->PIO_PDSR&(0X1<<4))==0)&&(fla g==0)){
flag=1;
i++; }
if (i==5)i=1;
if ((AT91C_BASE_PIOA->PIO_PDSR&(0X1<<4))!=0)flag=0;
switch (i)
{
case 1:
LCD_WriteString(" ",1, 8); LCD_WriteChar('*',0, 0);
break;
case 2:
LCD_WriteString(" ",0, 0); LCD_WriteChar('*',0, 8);
break;
case 3:
LCD_WriteString(" ",0, 8); LCD_WriteChar('*',1, 0);
break;
case 4:
LCD_WriteString(" ",1, 0); LCD_WriteChar('*',1, 8);
break;
}
if((AT91C_BASE_PIOA->PIO_PDSR&(0X1<<5))==0){
LCD_Clear();
switch (i)
{
case 1:
while(1){ LCD_WriteString("clock" ,0 , 9) ;
x=AT91C_BASE_RTTC->RTTC_RTVR ;
LCD_WriteNumber(x,1 ,5);
if (secend==59){
min++;
if(min==59){
hours++;
if(hours==24){
x=0,hours=0,min=0;
}}}
LCD_WriteString("hours : min : secend " ,1 , 1);
if((AT91C_BASE_PIOA->PIO_PDSR&(0X1<<5))==0){
break;}
}
break;
case 2:
while(1){ LCD_WriteString("conter" ,0 , 9) ;
counter++;
LCD_WriteNumber(counter,1 ,5);
if((AT91C_BASE_PIOA->PIO_PDSR&(0X1<<5))==0){
break;}
break;
}
case 3:
while(1){ LCD_WriteString("vmeter" ,0 , 9) ;
}
case 4:
while(1){ LCD_WriteString("counter" ,0 , 9) ;
}
} }
//x=adc_read(6);
//sprintf(lcd,"adc=%d",a);
//LCD_WriteString(lcd ,0 , 0) ;
// for (i=0;i<0xfffff;i++);
}
}
من آن اواره ی بشکسته بالم ز هجرانت بتا رو بر زبانم
منم آن مرغ سگردان تنها پریشان گشته شد یکباره حالم
یا مهدی
دیدگاه
دیدگاه