Achja was die Abfragerate angeht...
Das kommt auch drauf an, wie du das softwaremäßig umsetzen willst - Du solltest z.B. nicht in einer Schleife kontinuierlich den Status der Ports abfragen - Schöner ist es, wie bereits erwähnt, das ganze mit Interrupts zu Handhaben.
Ein External Interrupt kann von bestimmten Pins (mit Int gekennzeichnet) ausgelöst werden und wenn das der Fall ist, dann wird der normale Programmfluss unterbrochen und die ihm zugeordnete ISR (Interrupt-Service-Routine) ausgeführt - eine bestimmte Funktion also.
Schau dir dazu mal ein AVR-GCC Tutorial zum Thema Interrupts an (ich glaub auf mikrocontroller.net gibts ein ganz nettes) - vorrausgesetzt du schreibst das Program in C - Bei Bascom kann ich dir leider nicht weiterhelfen :)