Är det samma metodik att programmera olika processorer?
Re: Är det samma metodik att programmera olika processorer?
De har ju gett ut en manual, referens manualen, man läser på för varje enskild periferienhet man vill använda, tills dess att man förstår dess funktion och hur de enskilda flaggorna (bitarna i de olika registerna) påverkar enheten.
Re: Är det samma metodik att programmera olika processorer?
De har ju massor av referenskod i sitt Hal och exempel bibliotek att titta på.
Läromedel får du någ leta hos de som håller i utbildningar...
Läromedel får du någ leta hos de som håller i utbildningar...
Re: Är det samma metodik att programmera olika processorer?
ST Tycker inte man skall sitta och pilla i registerna.DanielM skrev: ↑25 februari 2024, 20:04:10Men STM borde faktiskt ge ut en manual. Nu sitter jag bara och försöker använda referensmanualen som den vore en utbildningsmanual. I normala fall så brukar det alltid finnas ett exempel på hur man använder registrerna. Microchip är tydliga med detta.
Men STM ger inte några exempel i sina dokument.
Det är ju därför dom satsat på sin HAL.
Re: Är det samma metodik att programmera olika processorer?
Jag vet. Men nu är det bara för lärdomens skull.
Jag tänkte om jag kan hantera detta med register, så får jag bättre förståelse över hur processorer brukar fungera.
Nu säger dock TomasL att dom skiljer sig enormt mellan varandra. Visst, men jag tror ändå grunden är kvar. Att efter man har satt ström på processorn, så måste man ge sig på klockan. Då det är klockan som driver alla andra periferier.
Jag tycker dock att STMs TIM-diagram stämmer inte alls med sina register.
Det finns inget register som heter CK_INT. Utan man måste läsa sig till att CEN är den som aktiverar klockan, då då väljs CK_INT automatiskt, vilket betyder Clock Internal.
Så schemat är lömskt. Inte lika tydligt som STMs diagram för klockan(RCC). En annan sak som jag kan klaga på med all rätt, det är att efter man har aktiverat sin räknare och valt att den ska ha PWM utgång. Då måste man aktivera PWM utgången också. Jaha, borde inte detta liksom....vara självklart att man vill aktivera PMW utgången om man väljer PWM utgången....Detta säger inte detta diagram vad man ska göra. Så det är svårt att följa diagrammet då registerna stämmer inte med namnen.
Jag tänkte om jag kan hantera detta med register, så får jag bättre förståelse över hur processorer brukar fungera.
Nu säger dock TomasL att dom skiljer sig enormt mellan varandra. Visst, men jag tror ändå grunden är kvar. Att efter man har satt ström på processorn, så måste man ge sig på klockan. Då det är klockan som driver alla andra periferier.
Jag tycker dock att STMs TIM-diagram stämmer inte alls med sina register.
Det finns inget register som heter CK_INT. Utan man måste läsa sig till att CEN är den som aktiverar klockan, då då väljs CK_INT automatiskt, vilket betyder Clock Internal.
Så schemat är lömskt. Inte lika tydligt som STMs diagram för klockan(RCC). En annan sak som jag kan klaga på med all rätt, det är att efter man har aktiverat sin räknare och valt att den ska ha PWM utgång. Då måste man aktivera PWM utgången också. Jaha, borde inte detta liksom....vara självklart att man vill aktivera PMW utgången om man väljer PWM utgången....Detta säger inte detta diagram vad man ska göra. Så det är svårt att följa diagrammet då registerna stämmer inte med namnen.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
- Synesthesia
- Inlägg: 597
- Blev medlem: 22 januari 2010, 19:14:10
- Ort: Mellan Göteborg och Kungsbacka
Re: Är det samma metodik att programmera olika processorer?
Har man lärt sig interfacens registers funktion på någon µC, räcker med valfri 8-bit, så kommer man känna igen motsvarigheten i andra µC, i den grad de interfacen finns, fast interfacen kan vara olika komplexa och ha olika många "inställningar".
Re: Är det samma metodik att programmera olika processorer?
Så tycker jag också det är. Helt klart enklare att lära sej på en atmega328, där går det enkelt att läsa sej till hur man gör.
danielM, förutom nöjet att lära sej nytt, vad extra ger ditt program ett par sidor tillbaka mot detta?
Man får lista ut vilken timer och channel som PA5 sitter på.
https://github.com/stm32duino/Arduino_C ... er-library
danielM, förutom nöjet att lära sej nytt, vad extra ger ditt program ett par sidor tillbaka mot detta?
Kod: Markera allt
HardwareTimer *MyTim = new HardwareTimer(TIM3);
MyTim->setPWM(channel, PA5, 1, 50);
https://github.com/stm32duino/Arduino_C ... er-library
Re: Är det samma metodik att programmera olika processorer?
Du menar att jag ska testa detta?hawkan skrev: ↑26 februari 2024, 07:44:37 Så tycker jag också det är. Helt klart enklare att lära sej på en atmega328, där går det enkelt att läsa sej till hur man gör.
danielM, förutom nöjet att lära sej nytt, vad extra ger ditt program ett par sidor tillbaka mot detta?
Man får lista ut vilken timer och channel som PA5 sitter på.Kod: Markera allt
HardwareTimer *MyTim = new HardwareTimer(TIM3); MyTim->setPWM(channel, PA5, 1, 50);
https://github.com/stm32duino/Arduino_C ... er-library
Det fungerar säkert jätte bra.
Re: Är det samma metodik att programmera olika processorer?
Håller med, med tillägget att det kan kanske vara bra att ha lärt sig ett par olika. Typ t.ex. att de flesta har datariktningsregister för I/O-portar, medan vissa Intel inte har detta och när man sätter utgångar till en etta så driver de en kort puls hög och växlar sen till relativt hög impedans, så att samma pinne både är en etta som utgång och också satt som ingång. Antar att ingen gör så idag, det var väl en 70-80-talsgrej att spara chipyta...Synesthesia skrev: ↑26 februari 2024, 02:50:02Har man lärt sig interfacens registers funktion på någon µC, räcker med valfri 8-bit, så kommer man känna igen motsvarigheten i andra µC, i den grad de interfacen finns, fast interfacen kan vara olika komplexa och ha olika många "inställningar".
Re: Är det samma metodik att programmera olika processorer?
Borde inte diagrammen vara en god väg att följa också?
Jag hade mycket användbarhet av RCC diagrammen. Men däremot TIM-diagrammen var inte så tydliga att dom följde knappt registerna.
Jag hade mycket användbarhet av RCC diagrammen. Men däremot TIM-diagrammen var inte så tydliga att dom följde knappt registerna.
Re: Är det samma metodik att programmera olika processorer?
Bättre att läsa den detaljerade funktionsbeskrivningen för enheten i fråga.
Re: Är det samma metodik att programmera olika processorer?
Jo, självklart. Men det gäller att hitta dom också.
En referensmanual ska vara tydlig också och leda användaren.
En referensmanual ska vara tydlig också och leda användaren.
Re: Är det samma metodik att programmera olika processorer?
Finns garanterat ett innehålsregister, där alla periferienheter är upptagna, med sidhänvisningar.
Re: Är det samma metodik att programmera olika processorer?
Jag tyckte TIM diagrammet för STM32 följde inte alls registerna. Där var det luddigt. Men RCC diagrammet följde riktigt tydligt.
Re: Är det samma metodik att programmera olika processorer?
Diagrammen är inte avsedda att visa vilka register som används utan relationen mellan olika enheter, signalvägar etc.
Re: Är det samma metodik att programmera olika processorer?
Precis, det är ofta lite skillnad mellan HW-spec och hur de har deklarerat/namngivit register i header-filer, vilket inte gör det lättare. En stor SoC-tillverkare jag har jobbat med har en intern databas från vilken de genererar registerspec och header-filer, då blir det lite enklare.