hello,
First documentation:
Hardware:
http://www.bypic.byvac.com/index.php/BV508
ByPic:
http://www.bypic.co.uk/
Counters etc.
The chip is PIC32MX170F256B and so any on chip hardware that is on that chip is available. The rookie firmware gives easy access to the most popular hardware peripherals, GPIO, ADC, timers, I2C etc. but not all as this would make it too big.
The documentation for rookie is here:
http://www.bypic.co.uk/index.php/Rookie3
For more advanced peripherals direct register access is available by using @, ?, peek or poke. This enables using anything that is available on the IC. An example is using the on chip PWM which is not in rookie.
Scheduling - Documentation:
http://www.bypic.co.uk/index.php/Scheduling. This has been renamed to "task" as it is really multi-tasking rather than scheduling. This is an interesting way to run applications and requires a different approach where all 'top' functions are probably called again and again. It is an alternative to the application being in an endless loop. The program is running but you still get the ok prompt so do not need to stop it to inspect global variables.
A good example is a keypad that may need constant scanning, this can be done via tasking and set a global variable say lastKey or even fill a buffer. Most applications have 3 parts input, process and output. So for example if we have a user interface consisting of an LCD and keypad then we can write this as a separate module and have it run as a task, the task can set and pick up local variables so the processing module only needs to look at say lastKey to see if the user has done anything. The other way round is that the processing module can set a variable that the user interface LCD will pick up and display. The point, is that the user interface can be written and tested independently whilst it is running in the background.
Personally I have been using the task system in preference to all other ways of writing an application and still learning, it does require a different way of thinking and probably not suitable for all applications but so far it has proved to be so much easier.
It is not possible to say how often a task can run as this will depend on the task being run, the minimum time is 1ms but the task may take longer if the function that it is running takes longer. There is an indicator in 'tasksee' called [health] if this is not 0 then the function (or task it does not need to be a function, i.e print "fred") is taking longer than the time interval between tasks.
The documentation at ByPic is massive and fragmented. The ideal would be a book(let) (or series of videos) to introduce the basics -- waiting for volunteers.
Finally:
The main advantage of using ByPic over a compiled language such as C is the interactivity it offers and the shear speed of building applications - a bit like WYSIWYG for microcontrolles.