Självklart kan man använda sig att funktioner i Simulink. Men jag har problem att programmera i Simulink precis som jag gjorde i Arduino.
Jag får det inte fungera.
Vi säger att jag har en funktion som alltid loopar. Vi kallar den för loop(). I loop finns det två funktioner, keypad() och controll(). controll() ser till så att ett objekt regleras med PID och keypad() kontrollera om tecknet '#' har skrivits in. Om det har gjort det så ska parametrarna för PID ställas in. Då ska en LCD visa vad man skriver in. Då ska nummerplattan anropas igen.
Sånt här exempel har jag svårt med. Jag kan använda mig av S-function builder för att lägga in bibliotek så jag kan använda mig av en nummerplatta och en LCD. Jag kan inte använda mig av dubbla S-function builder t.ex. keypad2 och keypad1 som har exakt samma bibliotek. Då blir det error att dessa bibliotek existerar redan. Jag kan inte heller programmera ett flöde typ om signalen u < 10 så ska keypad förstärka signalen.
Då är min fråga: Har jag missuppfattat detta med Simulink att Simulink är bara för att styra signaler och inte kontrollflöden som t.ex. klassisk C-programmering?
Kan man göra funktionsflöden i Simulink?
Re: Kan man göra funktionsflöden i Simulink?
Nu vet jag inte exakt vad du vill göra, men det låter som att stateflow skulle kunna hjälpa: https://www.youtube.com/watch?v=XpQ2osUE4v4
Där kan du bygga upp olika state som hanterar de olika tillfällena i ditt program. Typ gå till parametersättnings-state när "#" trycks ner.
Det går säkert att göra med block, m-code, s-functions osv. Men det låter som att du vill bygga något med olika states.
Hoppas det hjälper lite.
Där kan du bygga upp olika state som hanterar de olika tillfällena i ditt program. Typ gå till parametersättnings-state när "#" trycks ner.
Det går säkert att göra med block, m-code, s-functions osv. Men det låter som att du vill bygga något med olika states.
Hoppas det hjälper lite.
Re: Kan man göra funktionsflöden i Simulink?
Stateflow har jag testat. Men det resulterar inte samma sak som klassisk C-programmering.
Är det så att man har skapat ett block som har en utgång och en ingång och sedan använder man bara ingången (vi säger att blocket är en void) så blir det error.
T.ex. om man har ett Simulink Function Block och där inne är det en S-Function på en LCD. Ingången IN är av upplösningen uint8 och IN ska avgöra vad man vill göra i S-Function blocket då det finns en switch case där i. OUT är av upplösningen double.
Ibland vill man bara skriva ut något på skärmen utan att skicka ut något. Ibland vill man både skriva ut vad man har nyss knappat in och sedan skicka ut det.
Är det så att man har skapat ett block som har en utgång och en ingång och sedan använder man bara ingången (vi säger att blocket är en void) så blir det error.
T.ex. om man har ett Simulink Function Block och där inne är det en S-Function på en LCD. Ingången IN är av upplösningen uint8 och IN ska avgöra vad man vill göra i S-Function blocket då det finns en switch case där i. OUT är av upplösningen double.
Ibland vill man bara skriva ut något på skärmen utan att skicka ut något. Ibland vill man både skriva ut vad man har nyss knappat in och sedan skicka ut det.