Witam
Od dłuższego czasu nie mogę dojść co jest nie tak:
set_Freq[] - typu int
set_Freq[x]- przyjmuje cyfry od 0..9
unsigned long int SET
zamienia wprowadzone cyfry na liczbę
kawałek kodu:
w takiej formie zmienna SET zawsze ma błąd na 5 pozycji. jesli próbuje sie wpisać na tą pozycję cyfrę >3. Pozostałe pozycje/wagi (wyzsze lub niższe są ok).
próbowałem również ręcznie w programie wpisać:
np.
i to jest ok. ale już
daje dziwną liczbę 4294961929
dla SET =10000*4;
4294941425
dla SET =10000*5;
42949514378
używam bibliotek:
#include <avr/io.h>
#include <avr/delay.h>
#include <Function_AD9833.c> //dołączana biblioteka obsługi AD9833 z katalogu
#include <LCD_HD44780.c> //dołączana biblioteka obsługi LCD z katalogu
#include <stdio.h>
#include <inttypes.h>
#include <avr/interrupt.h> //obsługa przerwań
#include <avr/signal.h>
Od dłuższego czasu nie mogę dojść co jest nie tak:
set_Freq[] - typu int
set_Freq[x]- przyjmuje cyfry od 0..9
unsigned long int SET
zamienia wprowadzone cyfry na liczbę
kawałek kodu:
SET =set_Freq[0]+10*set_Freq[1]+100*set_Freq[2]+1000*set_Freq[3]+10000*set_Freq[4]+100000*set_Freq[5]+1000000*set_Freq[6];
//poniżej to tylko wyswietlenie
Command_LCD(2 ,86);
dtostrf(SET,1,0,table_y);
WriteText_LCD(table_y);
while(1){};
w takiej formie zmienna SET zawsze ma błąd na 5 pozycji. jesli próbuje sie wpisać na tą pozycję cyfrę >3. Pozostałe pozycje/wagi (wyzsze lub niższe są ok).
próbowałem również ręcznie w programie wpisać:
np.
SET =60000;
....
i to jest ok. ale już
SET =10000*6;
....
daje dziwną liczbę 4294961929
dla SET =10000*4;
4294941425
dla SET =10000*5;
42949514378
używam bibliotek:
#include <avr/io.h>
#include <avr/delay.h>
#include <Function_AD9833.c> //dołączana biblioteka obsługi AD9833 z katalogu
#include <LCD_HD44780.c> //dołączana biblioteka obsługi LCD z katalogu
#include <stdio.h>
#include <inttypes.h>
#include <avr/interrupt.h> //obsługa przerwań
#include <avr/signal.h>
