Advertisement
User_4

Attiny85_PWM

Aug 31st, 2020
2,225
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //------------------------------------------------------------------------------
  2. // ATTINY85 Fast PWM
  3. //
  4. //------------------------------------------------------------------------------
  5. //
  6. // PWM a transistor to control a motor
  7. //
  8. //------------------------------------------------------------------------------
  9.  
  10. #include <avr/io.h>
  11.  
  12. // Global Variables
  13. uint32_t previousMillis = 0;
  14. uint16_t interval = 100;
  15. uint16_t potVal = 0;
  16. uint16_t duty = 0;
  17.  
  18. //------------------------------------------------------------------------------
  19. // SET UP SET UP SET UP SET UP SET UP SET UP SET UP SET UP SET UP SET UP
  20. //------------------------------------------------------------------------------
  21. void setup() {
  22.  
  23.   DDRB = 0b00010000;  // Leave A1 as input, set PB4 as output
  24.   PORTB = 0b00000000;
  25.  
  26. //  PORTB = 0b00010000;  // Set PB4 HIGH
  27. //  delay(500);
  28. //  PORTB = 0b00000000;
  29.  
  30.   TCCR1 = TCCR1 & 0b11111001 | 0x01;  // Adjust Timer1 Prescaler
  31.    
  32. }
  33.  
  34. //------------------------------------------------------------------------------
  35. // LOOP LOOP LOOP LOOP LOOP LOOP LOOP LOOP LOOP LOOP
  36. //------------------------------------------------------------------------------
  37. void loop() {
  38.  
  39.   if (millis() - previousMillis >= interval) {
  40.  
  41.     previousMillis = millis();
  42.    
  43.     potVal = analogRead(A1);
  44.     duty = map(potVal, 0, 1023, 0, 255);
  45.     analogWrite(4, duty);
  46.    
  47.   }
  48.  
  49. }
  50.  
  51. // -----------------------------------------------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement