Tack V-G, nu känner jag mig inte helt värdelös iaf.
Jag har ett oscilloskop, och inte nog med det, jag sitter just nu och packar upp min BusPirate som jag tänkte använda för att kontrollera signalerna med. Så nog ska timingen lösa sig.
Jag ska testa mina pic:ar nån gång till innan jag slänger dom och köper ett gäng nya.
Det har löst sig. Jag flyttade från ben B4 till B0 och nu är det inga problem alls.
Jag ska bara försöka lösa timingen nu. Det är som sagt inte helt lätt när det är så små intervaller, det blir mycket "fulkod"
Så snabbt är det inte för en µc Det var mycket värre att få det att funka i VB6 men det gick även det men fick koda en egen delayrutin då den inbyggda bara går till 1ms
Jag har börjat med lite andra projekt på samma labb-bräda och får massa märkliga fel hela tiden på all kod. Så jag började kolla allt och inget verkade vara fel.
MEN! Jag matar labb-brädan direkt från mitt labb-agg. Satte en 7805:a och en väggvårta istället och nu funkar allt jag har på plattan som om det aldrig varit fel på det innan.
Vad var det för fel med att driva från labb-agget?
För långa, tunna sladdar? Dåligt kontakt? Störningsmiljö?
Eller?
Vad är en väggvårta?
PIC 16Fxx är ju lite knepig på utgångarna om man bara skriver på en bit och inte alla bitar samtidigt. Resultat är lite random för det andra bitarna. Att det inte fungerar på B4 men B0 tyder på att det kan vara detta problemet. Du säger att felet är fixat men inte vad som var orsaken.
DS1820 1-wire är ju knepig när det gäller timing. Det gäller att ha stenkoll. Jag har haft problem med att vissa kommandon fungerade men andra, tempkonv, inte fungerade. Allt fungerade med extern powermatning men inte när jag körde parsit power.
Ps
Fel och misstag är det man lär sig av. Källan till massa kunskap.
Att man måste skriva till alla portar håller jag inte med om. Skriver du till en port så skriver du bara till den. Varför skulle det bli random? Då har man ju gjort fel.
Vissa labbagg ger ut ganska ful ström. Ivf gjorde mitt billigare det.
Väggvårta är en adapter man sätter i vägguttaget och får ut klenspänning ur.
Ett "vanligt" fel man gör med labbagg (om man har ett med ställbar strömstyrka) är att man av misstag ställt ner strömmen eller glömt vrida upp den. Så om kretsen på labbplattan drar lite mer ström än labbagget ger ut, så kan väldigt konstiga fenomen uppstå. Jag har själv varit med om det.
Nej, det är förutsägbart, om man vet hur det fungerar.
I de allra flesta fall fungerar det dessutom som man skulle kunna tro.
Vill man veta så kan läsa på om "read-modify-write" fenomenet. Dessutom
innehållar databladen information som, kanske inte helt tydligt men i alla fall,
beskriver den tekniska bakgrunden till det hela.
Iofs drar ju DS1820 lite mer ström just vid omvandlingen men jag skulle tro det är såpass lite att det är "svårt" att ha sån osis att man ställt labbagget att kapa just där. Mitt ställs med 10mA "noggrannhet och jag tror de flesta inte har mycket bättre labbagg än mig just på den punkten.
Däremot parasite power är en lustig sak visst det finns och det måste ju fungera men jag skulle säga att det är mer krångel än nytta om man jämför med att dra en kabel extra särskilt om man ska ha flera sensorer.
-V-G, du har rätt. Varför skall man använda parasite power egentligen. Kul att pröva dock.
-Ja ja strömbegränsning kan ge spännande fenomen.
-Aha otyget har ett namn, Read-Modify-Write, tydligen. Jag har inte sett det i databladet. Det finns mycket att läsa i databladet. Skall leta. Intressant hur Microchip hanterar något som måste ses som en designmiss. Först blir man blir glad över att det finns instruktioner för adressera enskilda bitar men tyvärr går dessa att använda hur som helst.
danielr112, Pröva att köra:
TRISA=0;
PORTA=0;
PORTA.0=1;
Kolla vad PORTA.1, PORTA.2, PORTA.3, etc har för värde efter detta. Det är förmodligen inte vad man väntar sig. Jag prövade att använda Pickit2s "logikanalysator" och blev helt förvirrad av vad jag mätte. Trodde förståss att jag inte fattat hur logikanalysatorn fungerade.
Oltronix Det låter som om du har fått något helt om bakfoten.
Jag har inga problem att addresera en bit åt gången. Är precis så jag gör på alla mina projekt jag gjort. Varav det senaste är styrningen av ljuset i trappan som handlar om 20 olika utgångar. Samt att jag har 5 ingångar. Hade varit jobbigt om man inte kunnat använda de olika bitarna där. Och jag har hitils inte brytt mig om att ha utgånger på ena kanalen och ingångar på en annan. Jag har faktiskt blandat hej villt... Inte det bästa kanske men hititls funkar det för mig.
Nu fick leta fram PicKit2 o kortet med en 16F690 för att visa vad som händer.
Övre bilden har följande kod:
while(1)
{
PORTC.0=1;
PORTC.1=1;
PORTC.0=0;
}
Den undre:
while(1)
{
PORTC.0=1;
PORTC.1=1;
}
Detta är inte direkt vad man förväntar sig att ske. Men det händer! Det som verkar som att när RC0 resp RC1 togglar påverkar det även sin granne.
Kortet som 16F690 sitter i är det som följer med PICkit2. RC0 resp RC1 belastas med en LED o tillhörande motstånd.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.