name                            = "pico_ada_c04_pwm"
description                     = "Chapter 4: Analog LED with PWM"
long-description                = """Building smooth breathing LEDs and flowing light bars with hardware PWM on the
Raspberry Pi Pico using Ada. From jittery duty cycles to perfect linear dimming - guided by the Voltcraft MSO-5102B
oscilloscope and a deep dive into PWM slice mapping on both Pico 1 and Pico 2.

In this chapter we create a reusable Pico.Analog package for PWM-based analogue output. We start with a classic
breathing light, then move on to a flowing light bar. Along the way the MSO-5102B reveals the real behaviour of our
code, and we discover (and fix) a subtle bug in the experimental RP2350 HAL.

Contained in Chapter 04 are:

1. Pwm                         - Original PWM sample from Jeremy Grosser
2. sketch_04_1_breathing_light - Chapter 4.1 Blink internal LED
3. sketch_04_2_flowing_light_2 - Chapter 4.1 Project Meteor Flowing Light

Read the full tutorial at [Chapter 4: Analog & PWM](https://pi-ada-tutorial.sourceforge.io/pico_ada_c04_pwm), [GNATdoc
documentation](https://pi-ada-tutorial.sourceforge.io/gnatdoc/pico_ada_c04_pwm/), [SourceForge
repository](https://sourceforge.net/p/pi-ada-tutorial/code/ci/master/tree/pico_ada_c04_pwm/)
"""

version                         = "1.5.2"
licenses                        = "GPL-3.0-or-later"
authors                         = ["Martin Krischik <krischik@users.sourceforge.net>"]
maintainers                     = ["Martin Krischik <krischik@users.sourceforge.net>"]
maintainers-logins              = ["krischik"]
website                         = "https://pi-ada-tutorial.sourceforge.io/pico_ada_c04_pwm"
tags                            = ["raspberry", "pi", "pico", "rp2040", "tasking", "light-tasking", "ada2022", "embedded"]
executables                     = [
    "pwm",
    "sketch_04_1_breathing_light",
    "sketch_04_2_flowing_light_2"
]

[build-switches]
"*".ada_version                 = ["-gnat2022"]
development.compile_checks      = "Warnings"
development.contracts           = "Yes"
development.runtime_checks      = "Overflow"
release.compile_checks          = "Warnings"
release.contracts               = "No"
release.runtime_checks          = "Default"
validation.compile_checks       = "Warnings"
validation.contracts            = "Yes"
validation.runtime_checks       = "Everything"

[[depends-on]]
rp2040_hal                      = "^2.7.1"
pico_bsp                        = "^2.2"
pico_xbsp                       = "^1.5"
light_tasking_rp2040            = "^15.3"

[configuration.values]
rp2040_hal.Use_Startup          = false
rp2040_hal.Interrupts           = "bb_runtimes"
light_tasking_rp2040.Max_CPUs   = 2
light_tasking_rp2040.Board      = "rpi_pico"

# vim: set textwidth=120 nowrap tabstop=8 shiftwidth=4 softtabstop=4 expandtab :
# vim: set filetype=toml fileencoding=utf-8 fileformat=unix foldmethod=diff :
# vim: set spell spelllang=en_gb :

[origin]
hashes = [
"sha256:03761a8e4bd3774f03f48aa30cc5d71f8a68a80a240edc7ec8fe3724c42b8681",
"sha512:942fd4aa8b70addc97743c12f8ad416836abf47275c1a7eaf996311c655b9a7c91bbf2f8e5897489105eedfa7470c0350948056510d58478a263d8f095e3e8cc",
]
url = "https://sourceforge.net/projects/pi-ada-tutorial/files/Alire/pico_ada_c04_pwm-1.5.2.tgz"

