动态 版块 发帖 消息 我的
Loading...
小绿叶技术博客
小绿叶技术博客
小绿叶技术Lv153   
c 语言字符串批量生成     



//---- gpio.h ----//
#include <stdint.h>             // uint 函数  头文件


static uint8_t ddrsum[6] = {    
7,
3,
7,
3,
7,
7
};
// const 只读,不允许改变的关键字数组类型

/*
static  uint64_t gpioNM[] = 
{
'DDRT',
'DDRM',
'DDRS',
'DDRJ',
'DDRP',
'DDR0AD'
};

*/

static  uint64_t gpioNM[] = 
{
'T',
'M',
'S',
'J',
'P',
'D'
};


// 参数结构体 
typedef struct
{
    uint64_t gpioname;
    uint8_t  gpiosum;    
    uint8_t _incAD;
    uint8_t i;
  
}GPIOtruct;
extern GPIOtruct gpio;





//---- gpio.c ----//


#include <stdio.h>      // 标准头文件
#include <stdint.h>     // uint_8 头文件
#include <string.h>

#include "gpio.h"

GPIOtruct gpio;

uint64_t PgpioNM[6];
uint8_t  Pddrsum[6];

uint8_t counti= sizeof(ddrsum)/sizeof(ddrsum[0]);           
                                         // 数组总字节大小 除以 第一个字节大小 等于 多少个数组元素

void GetValue(void)                      // 从 .h 里面获取数组
{  
    uint64_t *pRom, *pRam;
    uint8_t Cnt = 0;  
                          
    pRom = (uint64_t*)&gpioNM;        
    pRam = (uint64_t*)&PgpioNM;         
    Cnt  = counti;                                                                                  
    while(Cnt--)
    {                       
        *pRam++ = *pRom++;    

    } 

    pRom = (uint8_t*)&ddrsum;        
    pRam = (uint8_t*)&Pddrsum;         
    Cnt  = counti;                                                                                  
    while(Cnt--)
    {                       
        *pRam++ = *pRom++;        
    }




}

 
void jisuan(GPIOtruct *_gpio)
{
    _gpio->gpiosum  = Pddrsum[_gpio->i];            // 获取个数
    _gpio->gpioname = PgpioNM[_gpio->i ];           // 获取名字


    uint8_t i = _gpio->gpiosum;

   // char  *p;
   // p=_gpio->gpioname;                              // 强制转换变量类型
    
    
    //strcpy(p, _gpio->gpioname);

    char  *p;
    p=_gpio->gpioname;
    

    for (;;)
    {
        if( 0 > i || 255 == i )
        {
            break;
        }

        printf( "DDR%s_DDR%s%d=0; \n" ,&p, &p, i );       // 打印: 是指针的内存地址,对应的值

        i--;
    }
}


int main(int argc, char const *argv[])
{
    

    uint8_t i=0;

    GetValue();

    for(;;)
    {
        usleep(200000);       // 200ms
        
        gpio.i=i;

        if(counti-1<i)        // count=6 时 循环7次; 6-1=5 循环6次
        {
            printf("exit!  i = %d  counti = %d \n \n ",i, counti);
            break;
        }
        else
        {
          printf("\n");
        }

        jisuan(&gpio);

        i++;

    }

    return 0;
}

 




 0  已被阅读了81次  楼主 2023-11-20 15:18:20
回复列表

回复:c 语言字符串批量生成

guest
登录之后更精彩~
Powered by HadSky 7.12.10
© 2015-2023 PuYueTian
您的IP:3.233.221.90,2023-12-01 13:39:28,Processed in 0.02817 second(s).
Powered by HadSky
小绿叶技术博客