Fix PWM for fan
This commit is contained in:
		| @@ -7,21 +7,17 @@ void pwm_init(void) { | ||||
|     // Disable PWM | ||||
|     ZTIER = 0; | ||||
|  | ||||
|     // Set prescaler to 1159 + 1 | ||||
|     C6CPRS = 0x87; | ||||
|     C6MCPRS = 0x04; | ||||
|     // Set prescalar clock frequency to EC clock | ||||
|     PCFSR = 0b01; | ||||
|  | ||||
|     // Set clock prescaler to 0 + 1 | ||||
|     C0CPRS = 0; | ||||
|  | ||||
|     // Set cycle time to 255 + 1 | ||||
|     CTR2 = 0xFF; | ||||
|     CTR0 = 255; | ||||
|  | ||||
|     // Turn on the CPU fan at half blast (temperature control TODO) | ||||
|     DCR2 = 0x80; | ||||
|  | ||||
|     // Set gating clock source | ||||
|     PCSGR = 0xFF; | ||||
|  | ||||
|     // Set PWM2 output to use C6CPRS / CTR2 | ||||
|     PCSSGL = (0b10 << 4); | ||||
|     DCR2 = 128; | ||||
|  | ||||
|     // Enable PWM | ||||
|     ZTIER = (1 << 1); | ||||
|   | ||||
| @@ -3,6 +3,8 @@ | ||||
|  | ||||
| #include <stdint.h> | ||||
|  | ||||
| // Channel 0 clock prescaler register | ||||
| volatile uint8_t __xdata __at(0x1800) C0CPRS; | ||||
| // Channel 6 clock prescaler register (low byte) | ||||
| volatile uint8_t __xdata __at(0x182B) C6CPRS; | ||||
| // Channel 6 clock prescaler register (high byte) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user