Kul med PIC församling - Episode 9 (3 / 3 steg)
Steg 3: programvara
Programvaran länk nedan. Medan det är måltavlan för 12F683, är det lätt portas till andra versioner av bilden. Du kommer att behöva ändra raden som identifierar den PIC versionen (lista =) och INCLUDE-filen men de är intuitivt förändringar. Den __CONFIG linjen kan också behöva tweaking bara för att en eller två av de etiketter som används är stavat fel i några av inkluderade filer. Du måste också välja en bild som stöder PWM. Tyvärr, min andra favorit bild (16F688) inte har PWM funktion.
Programvaran är ganska enkelt när PWM initieringen är räknat ut. För att hjälpa till med register värde beräkningarna använde jag en PWM beräkning webbplats på:
www.Micro-examples.com/public/microex-navig/doc/09...
När jag först skrev den PIC-kod ställer jag PWM frekvensen vid 20 kHz. Jag anslöt en digital voltmeter till PIC-utgång och det omväxlande fina linjärt från 0 till 5 volt. Tyvärr, när jag anslutit PIC till modulen L298N upptäckte jag att när PWM började den första noll produktionen var över 10 volt. Det gick för mig att kanske modulen L298N var inte kan reagera att snabbt aktivera pulser så jag vevas frekvensen ner och slutligen fast vid 500 Hz.
En "funktioner" i tåg gasspjäll är en känsla av fart för acceleration och bromsning för att simulera hur riktiga tåg fungerar. För att åstadkomma det, infogas en enkel tidsfördröjning i Main_Loop. Med de värden som visas, tar det cirka 13 sekunder för att gå från 0 till 12 volt eller från 12 volt tillbaka till noll. Fördröjningen kan enkelt ändras för längre eller kortare tider. Det enda fall där drivkraften är är inte i kraft när växeln riktning ändras. Skydda anges PWM intermittensen omedelbart till 0% när den här växeln ändras. Så, i själva verket växeln riktning också fungerar som en nödbroms.
För att säkerställa omedelbar hantering av växeln riktning vi lägger sin kod i en avbrottshanterare. Som också tillåter oss att använda en PIC funktion nämns i ett tidigare avsnitt med namnet "avbryta på förändring". Vad som händer är att avbrottet inte är baserad på den logik nivån på PIN-koden (dvs: hög eller låg) gillar de flesta avbrott ingångar. Det kommer i stället att avbryta om logik nivån ändras från vad det tidigare var. Det är därför vår riktning switch har ena sidan drog upp till + 5 och den andra sidan knuten till marken.
Tja, är det det för episod 9 av kul med PIC församling. Håll ögonen öppna för ytterligare episoder.