12. december 2005 - 12:30Der er
24 kommentarer og 1 løsning
Konverting af tid til byteArray
Hej Expeter
Jeg bruger følgende linjer til at hente "current time" ud af operativsystemet i java.
Calendar now = Calendar.getInstance(); int year = now.get(Calendar.YEAR) int month = now.get(Calendar.MONTH); int day = now.get(Calendar.DAY_OF_MONTH); int hour = now.get(Calendar.HOUR_OF_DAY); int minute = now.get(Calendar.MINUTE);
Jeg skal så have konverteret disse til et bytearray, som skal sendes til en microcontroller. Jeg bliver nød til at optimere det lidt,så jeg ønsker et bytearray som er 16 bit, alstå 2 int på microprocessoren. Bytearrayet skal arrangeres på følgende måde.
time : 11 bit som er repræsntere antallet af minutter. altså hour * 60 + minute
weekday : 3 bit ugedag imellem 1 og 7 dayofyear : 9 bit year : 7 bit fillbit : 2 bit
Håber der er nogle der kan smide det ned i et bytearray.
Hej Arne...problemet ligger i at jeg skal smide bytearrayet over på en microcontroller hvor en int kun fylder 2 bytes...Er dette muligt? altså således at vio kommer ned på de 16 bit...Som jeg beskrev i mit spørgsmål
Hej Arne...ved godt jeg er lidt bøvlet, men hvis jeg laver nedenstående kode Calendar now = Calendar.getInstance(); int year = now.get(Calendar.YEAR); int dayofyear = now.get(Calendar.DAY_OF_YEAR); int dayofweek = now.get(Calendar.DAY_OF_WEEK) - 1; int hours = now.get(Calendar.HOUR_OF_DAY) * 60 + now.getalendar.MINUTE);
Så skal jeg have lavet year om til bare at være repræsenteret som 05
Herefter kan jeg lave følgende struct :-) i java....
typedef struct{ bit time : 11 antallet af timer * 60 + antallet af minutter (som udregnet) bit weekday : 3 går fra 1-7 bit dayofyear : 9 går fra 1-365 bit year : 7 går fra 0 til 99 bit fillout : 2 To tomme bits }timeType
Hold fast hvor er jeg bøvlet og ringe til at flytte rundt på bit..håber jeg kan få hjælp
Calendar now = Calendar.getInstance(); int year = now.get(Calendar.YEAR) - 2000; int dayofyear = now.get(Calendar.DAY_OF_YEAR); int dayofweek = now.get(Calendar.DAY_OF_WEEK) - 1; int hours = now.get(Calendar.HOUR_OF_DAY) * 60 + now.get(Calendar.MINUTE);
Jeg har lige en lille forspørgsel. Jeg kunne godt tænke mig at bruge den første af de to bits til at angive om det er skudår. Skudåret kan beregnes ved at sige årstal % 4 = 0{ Så skal den sætte den først bit, således at jeg kan dispatche beskeden på min microcontroller } Kan det lade sig gøre at smide sådan en lille bit ind hvis ovenstående er opfyldt
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.