Hallo,
Ik ben software aan het schrijven voor st7 en gebruik hiervoor een emulator.
Op de emulator werkt het programma goed, maar zodra ik het in een st7lite29 stop, blijken de PWM-uitgangen het niet meer te doen. Verder werkt het programma wel.
Wat kan hiervan de oorzaak zijn? Ik ben al wat met verschillende registers aan het prutsen geweest, maar zonder resultaat.
Een stuk uit de software (in C met de cosmic cross-compiler):
init:
DCR0H=0x00; //PWM0
DCR0L=0x00; //PWM0
DCR1H=0x00; //PWM1
DCR1L=0x00; //PWM1
DCR2H=0x00; //PWM2
DCR2L=0x00; //PWM2
PADDR=0x1F; // Define PA0:PA4 as output
PAOR=0x1F; // and push pull
PBDDR=0x0F; // Define PB0:PB2 as input
PBOR=0x0F; //
TRANCR=0x00; //
ATCSR=0x18;
ATRH=0x00; //Frequentie
ATRL=0x00; //Frequentie
PWMCR=0x55; //Alle PWM's aan
Later in het programma:
DCR0H=0x0f; //PWM0
DCR0L=0xff; //PWM0
DCR1H=0x0b; //PWM1
DCR1L=0xff; //PWM1
DCR2H=0x04; //PWM2
DCR2L=0xff; //PWM2
TRANCR=0x01; //Vlag voor nieuwe pwm-data
Iemand een idee???
Groeten,
Johan
Het probleem is intussen opgelost.
De klok van de PWM-timer was ingesteld op 32MHz. Omdat die niet aanwezig is doordat de interne RC-osc gebruikt wordt, werkte de PWM's niet.
Op de EMU3 waarop de software eerder had getest werkte dat wel.
Groeten,
Johan
Bastiaan
Bachelor of Engineering -- Microcontrollers AVR, PIC (asm, C), PC applicaties (C, C++), Webpages (HTML, CSS, PHP, SQL), Rail-infra engineer
