CC8e-demo headerfiler problem

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
tobbetabbe
Inlägg: 35
Blev medlem: 2 februari 2005, 17:18:12
Ort: Göteborg

CC8e-demo headerfiler problem

Inlägg av tobbetabbe »

Jag vill kunna utföra beräkningar med både 16 och/eller 32-bitars med decimaler.denna verkar enbart kunna räkna int.please help me!
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Fixed eller float ?

För övrigt kan man enkelt *tänka* sig ett komma var som helst...

Eller, säg att man vill hantera "meter med två decimaler", så räkna
med "centimeter" istället så slipper man decimalerna... :-)

Min första tanke när någon börjar tala om decimaler i en PIC, är
att detta är inte helt genomtänkt...

Men, tillbaka till frågan, vad menar du med "verkar enbart kunna räkna int" ?
Vad säger dokumentationen ?
tobbetabbe
Inlägg: 35
Blev medlem: 2 februari 2005, 17:18:12
Ort: Göteborg

förklarar mer

Inlägg av tobbetabbe »

enligt beräkningar på papper vill jag ha en kvot (för att få en linjär graf) men upptäckte att det inte gick dividera eftersom resultatet blir tex 1.00345 osv noggrannheten vill jag ska vara ca med 3 decimaler men undrar om det går att lägga till decimalet senare i utskrift till ascii strängen eller
tobbetabbe
Inlägg: 35
Blev medlem: 2 februari 2005, 17:18:12
Ort: Göteborg

Inlägg av tobbetabbe »

jag ska uppskatta linjärt pulstiden exakt (efter 50 intern klocka)då innan nästa puls har kommit vilken pulstid denna har om den har ökat (från pulsgivare somska samplas)


ex ett beräkningsgången på problem:

105/102=1,029411

1,029411-1=0,029411

102+0,029411*50=103,47055

hur kan man utföra beräkningen utan decimaler,tacksam för svar att slippa detta
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

OK, det hela beror ju även mycket på vad din "kvot" representerar.
Och vad täljaren och nämnaren representerar...

Hur som helst, jag vet i princip inget om ditt verktyg vad det nu hette,
det var bara en liten kommentar kring representation av verkliga
värden i PIC kod i allmänhet...
tobbetabbe
Inlägg: 35
Blev medlem: 2 februari 2005, 17:18:12
Ort: Göteborg

pulstid

Inlägg av tobbetabbe »

2 avlästa pulstider mellan flankerna men för att det ska stämmaöverens med den faktiska samplingstillfället så kan den inträffa mitt emellan två flanker.eftersom man inte vet värdet förrän nästa puls har inkommit har jag tänkt beräkna"uppskatta" värdet vad det skulle vara vid den tidpunkten

se exempel tidigare
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

He, du han imellan med ett inlägg till... :-)

> efter 50 intern klocka

Osäker på vad som avses med "50 intern klocka".

> vilken pulstid denna har

Inom vilket intervall ? min/max pulstid ? Med vilken upplösning ?

> 105/102=1,029411

Vad är "105" och "102" ??

> hur kan man utföra beräkningen utan decimaler...

T.ex genom att "skala upp" värderna :

105000/102 = 1029

1029-1000 = 29

102000 + 29x50 = 103450

Sätt ditt ett komma (om det behövs) : 103,450
tobbetabbe
Inlägg: 35
Blev medlem: 2 februari 2005, 17:18:12
Ort: Göteborg

Inlägg av tobbetabbe »

bra ide att att skala upp! de tal jag gav som exempel är bara tagna ur luften.de verkliga värdena kan vara från 0 till 65535 (FFFF timerområde)
hoppas man då kan slänga in ett decimaltecken efteråt. pulstiden är då 48 MHz klocka 20nS*antal interna pulser tex 205 interna pulser som referens
bearing
Inlägg: 11676
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Inlägg av bearing »

Om du skriver funktionen som omvandlar talet till ASCII själv kan du slänga in decimaltecknet där det ska vara.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> de verkliga värdena kan vara från 0 till 65535 (FFFF timerområde)

Och vad gör du om pulsen är > 65535 ?
Hur kommer det sig att maxvärdet på den externa pulsen råkar ligga
så exakt på timerns maxvärde ? Verkar lite osannolikt.
Användarvisningsbild
Henrik
Inlägg: 661
Blev medlem: 26 maj 2003, 23:39:14
Ort: Göteborg
Kontakt:

Inlägg av Henrik »

CC8E kan räkna flyttal, antal bitar skiljer från vilken betalversion du använder. Så antagligen blir detta inlägg en stor parantes. CC8E's flyttalsarkitektur är inte samma som mplabs, kanske är det detta du haft problem med. Det finns ett makro någonstans (i manualen till CC8E om jag kommer ihåg rätt) som omvandlar sinsemellan, som man kan använda under debuggning i mplab.
Skriv svar