kopia lustrzana https://github.com/Hamlib/Hamlib
fixed a bug with long long int, accepts an extra arg for number of digits
git-svn-id: https://hamlib.svn.sourceforge.net/svnroot/hamlib/trunk@1161 7ae35d74-ebe9-4afe-98af-79ac388436b8Hamlib-1.1.4
rodzic
4e528d0f85
commit
478792a496
|
@ -9,30 +9,42 @@
|
|||
#include <hamlib/rig.h>
|
||||
#include "misc.h"
|
||||
|
||||
#define MAXDIGITS 32
|
||||
|
||||
int main (int argc, char *argv[])
|
||||
{
|
||||
unsigned char b[5];
|
||||
unsigned char b[(MAXDIGITS+1)/2];
|
||||
freq_t f=0;
|
||||
int digits = 10;
|
||||
int i;
|
||||
|
||||
if (argc != 2) {
|
||||
fprintf(stderr,"Usage: %s <freq>\n",argv[0]);
|
||||
if (argc != 2 && argc != 3) {
|
||||
fprintf(stderr,"Usage: %s <freq> [digits]\n",argv[0]);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
f = atoi(argv[1]);
|
||||
|
||||
f = atoll(argv[1]);
|
||||
if (argc > 2) {
|
||||
digits = atoi(argv[2]);
|
||||
if (digits > MAXDIGITS)
|
||||
exit(1);
|
||||
}
|
||||
|
||||
printf("Little Endian mode\n");
|
||||
printf("Frequency: %lld\n",f);
|
||||
to_bcd(b, f, 10);
|
||||
printf("BCD: %2.2x,%2.2x,%2.2x,%2.2x,%2.2x\n",b[0],b[1],b[2],b[3],b[4]);
|
||||
printf("Result after recoding: %lld\n", from_bcd(b, 10));
|
||||
to_bcd(b, f, digits);
|
||||
printf("BCD: %2.2x",b[0]);
|
||||
for (i = 1; i < (digits+1)/2; i++)
|
||||
printf(",%2.2x",b[i]);
|
||||
printf("\nResult after recoding: %lld\n", from_bcd(b, digits));
|
||||
|
||||
printf("\nBig Endian mode\n");
|
||||
printf("Frequency: %lld\n",f);
|
||||
to_bcd_be(b, f, 10);
|
||||
printf("BCD: %2.2x,%2.2x,%2.2x,%2.2x,%2.2x\n",b[0],b[1],b[2],b[3],b[4]);
|
||||
printf("Result after recoding: %lld\n", from_bcd_be(b, 10));
|
||||
to_bcd_be(b, f, digits);
|
||||
printf("BCD: %2.2x",b[0]);
|
||||
for (i = 1; i < (digits+1)/2; i++)
|
||||
printf(",%2.2x",b[i]);
|
||||
printf("\nResult after recoding: %lld\n", from_bcd_be(b, digits));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
Ładowanie…
Reference in New Issue