Porta kod från Arduino Uno till ATtiny85
Re: Porta kod från Arduino Uno till ATtiny85
Jo, detta listade jag ut själv med INTSeniorLemuren skrev: ↑2 maj 2024, 08:28:23 Lägg märke till att bitarna som används inte är samma på Uno och Atiny och att det bara finns interupt 0 på Atiny men interupt 0 och 1 på Uno. Läs mer här.
Re: Porta kod från Arduino Uno till ATtiny85
Glädjen va kort!
Den fungerar sådär...
Den fungerar fint första gången stereon startas efter att varit strömlös, men andra gången (efter bara tändning av), då stereon dubbelkollar ifall CD-växlaren verkligen är där så verkar den inte få svar å då tar stereon bort ingången igen tills jag gör den strömlös igen...
Så någonstans felar det...
Någonting som jag har funderat på i koden är den absolut sista raden
Kan det vara så att detta är en typo? med tanke på att det står INTF0 ?
Kanske skall denna raden vara INT0??
Tacksam för svar!
Får experimentera med att ta bort F et när jag orkar å se om det gör nån skillnad...
EDIT:
Nej, det va en miss i min portning gällande den raden, kollade datablad och precis som de flesta andra grejjer så har inte Attiny85 någon TIFR, utan istället GIFR, men det skulle vara INTF0 enligt datablad
Skall ladda upp å se om det funkar!
EDIT2:
Ja, kollade jag datablad nogrannare så fanns visst TIFR i attiny, men det va nån helt annan funktion, nån timer interrupt historia, så det skulle det ju verkligen inte vara, märkligt att den funkade (init) med det?
Men den verkar inte funka med GIFR häller...
Tycker detta är märkligt, på någon nivå funkar ju skiten, då stereon initialt plockar upp "växlaren" och allt funkar fint, tills man bryter ACC? känns som att första biten fungerar men inte andra, då borde ju min port vara rätt gällande PORTD till PORTB och DDRD till DDRB? för annars hade ju inte initen funkat häller? eller tänker jag totalt fel?
Börjar luta åt att jag gör så bilen bryter både VIN och ACC på tändningen
Den fungerar sådär...
Den fungerar fint första gången stereon startas efter att varit strömlös, men andra gången (efter bara tändning av), då stereon dubbelkollar ifall CD-växlaren verkligen är där så verkar den inte få svar å då tar stereon bort ingången igen tills jag gör den strömlös igen...
Så någonstans felar det...
Någonting som jag har funderat på i koden är den absolut sista raden
Kod: Markera allt
TIFR |= (1 << INTF0);
Kanske skall denna raden vara INT0??
Tacksam för svar!
Får experimentera med att ta bort F et när jag orkar å se om det gör nån skillnad...
EDIT:
Nej, det va en miss i min portning gällande den raden, kollade datablad och precis som de flesta andra grejjer så har inte Attiny85 någon TIFR, utan istället GIFR, men det skulle vara INTF0 enligt datablad
Skall ladda upp å se om det funkar!
EDIT2:
Ja, kollade jag datablad nogrannare så fanns visst TIFR i attiny, men det va nån helt annan funktion, nån timer interrupt historia, så det skulle det ju verkligen inte vara, märkligt att den funkade (init) med det?
Men den verkar inte funka med GIFR häller...
Tycker detta är märkligt, på någon nivå funkar ju skiten, då stereon initialt plockar upp "växlaren" och allt funkar fint, tills man bryter ACC? känns som att första biten fungerar men inte andra, då borde ju min port vara rätt gällande PORTD till PORTB och DDRD till DDRB? för annars hade ju inte initen funkat häller? eller tänker jag totalt fel?
Börjar luta åt att jag gör så bilen bryter både VIN och ACC på tändningen
Re: Porta kod från Arduino Uno till ATtiny85
Tidigare i tråden så snackade SeniorLemuren om att inte bitarna va samma mellan registren, vilket de ju inte är, kan det spela in? å hur fixar jag det?
Tex på ATM328 så är ju INT1 på bit 1
medans ATT85 så ligger den på bit 6
Kollar jag i Arduino IDE så säger den att INT1 är just 1 på 328 och på 85 så säger den 6, så känns ju som att IDE har koll på det då?
EDIT: Testade den andra koden, på första hemsidan, den som tyvärr visar "CD ERROR" i displayen, ändrade alla PORT och DDR och EIMSK på precis samma sätt i den koden, den fungerar!
Så jag får leva med CD ERROR i displayen yills vidare, kanske själv kan kombinera koderna så det fungerar i framtiden...
Hade ju varit nice ifall man kanske tillåmed kan styra en BT modul med koden framöver, byta låt osv via BT på stereon!
Men men, får bli ett senare projekt...
Tex på ATM328 så är ju INT1 på bit 1
medans ATT85 så ligger den på bit 6
Kollar jag i Arduino IDE så säger den att INT1 är just 1 på 328 och på 85 så säger den 6, så känns ju som att IDE har koll på det då?
EDIT: Testade den andra koden, på första hemsidan, den som tyvärr visar "CD ERROR" i displayen, ändrade alla PORT och DDR och EIMSK på precis samma sätt i den koden, den fungerar!
Så jag får leva med CD ERROR i displayen yills vidare, kanske själv kan kombinera koderna så det fungerar i framtiden...
Hade ju varit nice ifall man kanske tillåmed kan styra en BT modul med koden framöver, byta låt osv via BT på stereon!
Men men, får bli ett senare projekt...
- SeniorLemuren
- Inlägg: 8093
- Blev medlem: 26 maj 2009, 12:20:37
- Ort: Kristinehamn
Re: Porta kod från Arduino Uno till ATtiny85
Uttrycket X |= (1 << Y); manipulerar den Y:te biten i variabeln X, och behåller resten av bitarna som de var innan operationen.
Du får ta reda på vilken siffra som variabeln INTF0 innehåller för att veta viken bit som manipuleras och manipulera motsvarande bit i Attiny.
Edit: Jag brukar använda den seriella monitorn för att ta läsa värdet på variabler m.m. när jag felsöker.
Du får ta reda på vilken siffra som variabeln INTF0 innehåller för att veta viken bit som manipuleras och manipulera motsvarande bit i Attiny.
Edit: Jag brukar använda den seriella monitorn för att ta läsa värdet på variabler m.m. när jag felsöker.
Re: Porta kod från Arduino Uno till ATtiny85
Visade sig senare igårkväll att även den andra koden inte varade då cd växlaren va borta igen...
Ingen monitor på attiny, funderade på att köra med softwareserial på tinyn för att debugga, får ta en kik på det när jag får tillbaka suget!SeniorLemuren skrev: ↑4 maj 2024, 08:45:35 Uttrycket X |= (1 << Y); manipulerar den Y:te biten i variabeln X, och behåller resten av bitarna som de var innan operationen.
Du får ta reda på vilken siffra som variabeln INTF0 innehåller för att veta viken bit som manipuleras och manipulera motsvarande bit i Attiny.
Edit: Jag brukar använda den seriella monitorn för att ta läsa värdet på variabler m.m. när jag felsöker.
- SeniorLemuren
- Inlägg: 8093
- Blev medlem: 26 maj 2009, 12:20:37
- Ort: Kristinehamn
Re: Porta kod från Arduino Uno till ATtiny85
Ok. fast INTF0 och andra variabler och konstanter får ju sina värden någonstans i originalprogrammet. Det går ju att söka efter.
Re: Porta kod från Arduino Uno till ATtiny85
vad har du valt för "board" i ArduinoIDE?
Digispark eller något annat med ATTiny85?
Digispark eller något annat med ATTiny85?
Re: Porta kod från Arduino Uno till ATtiny85
Får ta en kik nån dag, funderar på att bara köra en test med en ATMega å se så det funkar klockrent så det inte är nått annat fel! =)SeniorLemuren skrev: ↑4 maj 2024, 13:31:39 Ok. fast INTF0 och andra variabler och konstanter får ju sina värden någonstans i originalprogrammet. Det går ju att söka efter.
Bara en "ren" ATTiny85