I am using ARM V7 simulator and display 0 to 99 in seven segment display in defined interval. I able to get partially working. Can yo help to fix this?
Thanks
Jey
Moderators note : used code tags
Thanks
Jey
C:
//#include "address_map_arm.h"
#define HEX3_HEX0_BASE 0xFF200020
#define TIMER_BASE 0xFF202000
volatile int * HEX_ptr = (int *)HEX3_HEX0_BASE;
typedef struct _timer
{
int status;
int control;
int low_period;
int high_period;
int low_counter;
int high_counter;
}timer;
volatile timer* const port_timer = (timer *)TIMER_BASE;
int main(void) {
int interval =100000000;
int count=0;
*HEX_ptr=0;
port_timer->low_period=interval;
port_timer->high_period=interval>>16;
//port_timer->control=6;
while(1)
{
// if(port_timer->status & 1)
{
for(int i=0; i<16;i++)
{
// *HEX_ptr=DisplayHex(i);
port_timer->status =1;
*HEX_ptr=DisplayNum(i);
printf(" i =%d \n",i);
port_timer->control=6;
count ++;
}
}
}
}
void DisplayNum(int value)
{
int lookUpTable[9];
lookUpTable[0] = 0x06;
lookUpTable[1] = 0x6;
lookUpTable[2] = 0x5B;
lookUpTable[3] = 0x4F;
lookUpTable[4] = 0x66;
lookUpTable[5] = 0x6D;
lookUpTable[6] = 0x7D;
lookUpTable[7] = 0x7;
lookUpTable[8] = 0x7F;
lookUpTable[9] = 0x6F;
if (value <10)
{
*(HEX_ptr)= lookUpTable[value];
}
else
{
*(HEX_ptr+1)= lookUpTable[value];
}
}
Last edited by a moderator: