Ciao, devo tradurre una parte di codice C in Python ma ho problemi con la memory map di Python per trattarla così come viene trattata in C.
Qualcuno può aiutarmi?
Il codice C è il seguente:
Qualcuno può aiutarmi?
Il codice C è il seguente:
Codice:
#include <stdio.h>
#include <stdint.h>
#include <unistd.h>
#include <sys/mman.h>
#include <fcntl.h>
#include <stdlib.h>
#include <time.h>
#define XADC_reg 0x43C00000
#define PID_reg 0x43C10000
int main(int argc, char **argv)
{
int fd;
uint32_t *pid;
uint32_t *xadc;
char *name = "/dev/mem";
int active = 1;
uint32_t data;
uint32_t pos;
uint32_t position;
if((fd = open(name, O_RDWR)) < 0)
{
perror("open");
return 1;
}
pid = mmap(NULL, sysconf(_SC_PAGESIZE), PROT_READ|PROT_WRITE, MAP_SHARED, fd, PID_reg);
xadc = mmap(NULL, sysconf(_SC_PAGESIZE), PROT_READ|PROT_WRITE, MAP_SHARED, fd, XADC_reg);
*((uint32_t *)(xadc + 0)) = 0x0000000A; //reset
*((uint32_t *)(pid + 0)) = 0x00000000; //punto da raggiungere
*((uint32_t *)(pid + 1)) = 0x00000064; //azione proporzionale
*((uint32_t *)(pid + 2)) = 0x00000000; //azione integrativa
*((uint32_t *)(pid + 3)) = 0x00000000; //azione derivativa
*((uint32_t *)(pid + 5)) = 0x00000190; //azione derivativa
Ultima modifica da un moderatore: