view test-ad9912.c @ 270:a451d4618dbf

Simplify code moving the update of the DDS frequency display to the wrappers
author Daniele Nicolodi <daniele.nicolodi@obspm.fr>
date Fri, 10 Jul 2015 15:21:15 +0200
parents da38cbbc7ec8
children
line wrap: on
line source

#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include "ad9912.h"

#define die() do { printf("ERROR: %s\n", strerror(-r)); exit(EXIT_FAILURE); } while (0)
#define error() do { printf("ERROR: %s\n", strerror(-r)); } while (0)

int main(int argc, char **argv)
{
	int r;
	double f;
	struct ad9912 dds;

	if (argc < 2)
		exit(EXIT_FAILURE);
	
	r = ad9912_init(&dds, argv[1], 1e9);
	if (r < 0)
		error();

	for (int i = 0; i < 4; i++) {
		r = ad9912_get_frequency(&dds, i, &f);
		if (r < 0)
			die();
		printf("DDS%d f=%f Hz\n", i, f);
	}
	
	for (int i = 0; i < 4; i++) {
		r = ad9912_set_frequency(&dds, i, i * 10e6);
		if (r < 0)
			error();
	}
	
	for (int i = 0; i < 4; i++) {
		r = ad9912_get_frequency(&dds, i, &f);
		if (r < 0)
			error();
		printf("DDS%d f=%f Hz\n", i, f);
	}

	return 0;
}